Я могу передать этот вопрос в ADN DevHelp, если Вы подготовите 100% воспроизводимый тест, с скриншотами, описанием и т.д. И не забудьте, что ответы от DevHelp только на последние три версии AutoCAD.
Как и обещал, сделал тестовое приложение и подробное описание проблемы со скриншотами. Надеюсь, оно годится для отправки в ADN DevHelp.
Во вложении находится zip-архив с двумя файлами проекта - один исходный, созданный в 32-битной версии AutoCAD (TestVBA), второй - сохранен в 64-битной версии AutoCAD 2012 (TestVBA(sav2012_64)).
Описание тестового приложения:
Тестовое приложение состоит из кнопки Draw Polyline и текстового поля Polyline Area. При нажатии на кнопку Draw Polyline в командной строке появляется последовательность запросов точек - вершин полилинии. Построенная по указанным точкам полилиния автоматически замыкается и в поле Polyline Area отображается площадь полилинии.
Описание проблемы:
Проект, созданный в 32 битной версии AutoCAD без проблем загружается и работает в любой версии AutoCAD, любой разрядности. При этом в 64-разрядных версиях AutoCAD (кроме 2014) при выгрузке проекта (либо закрытии AutoCAD) возникает запрос о сохранении изменений.
Если выбрать вариант ответа "Да", то проект "привязывается" к конкретной библиотеке типов.
Так, файл сохраненный в версии AutoCAD 2012 корректно работает на той же машине и с версиями AutoCAD 2010-2011.
При переходе на версию 2013 тестовое приложение начинает работать некорректно: Полилиния строится только по двум первым точкам, остальные указанные пользователем точки игнорируются. В реальных проектах могут наблюдаться и другие ошибки (например сообщение о несовпадении типов при обращении к объектам чертежа).
В случае, если конкретная библиотека типов (в данном случае AutoCAD 2012 Type Library) отсутствует, то при попытке обращения к объектной модели AutoCAD выдается сообщение о невозможности найти библиотеку.
В случае перехода на 32-битную версию данное сообщение возникает даже в "правильном" AutoCAD (в случае тестового приложения - AutoCAD 2012).
Если открыть пункт меню VBA IDE Tools ->References, то можно увидеть потерянную библиотеку типов.
Замечание: Tools -> References мне удавалось открыть только в 32-битных версиях AutoCAD. В 64-битных версиях при попытке открыть данный пункт меню, AutoCAD закрывался с ошибкой.
Вопрос:
Существуют ли иные способы обойти данную проблему, кроме создания отдельного проекта для каждой из 64-битных версий AutoCAD?