30/05/2013
Рекомендуемый способ для получения доступа к AutoCAD COM интерфейсу с помощью C++
Общий способ доступа к объекту интерфейсу AutoCAD – вызов функции GetActiveObject, но он может вернуть NULL в ряде случаев (и в частности в событии On_kInitAppMsg), а также не гарантируется доступ к текущему AutoCAD.
Так как ObjectARX приложение загружается в пространство процесса AutoCAD, то нет необходимости просматривать таблицу исполняющихся объектов (ROT). Таким образом, мы можем получить его напрямую, используя следующий фрагмент кода, который требует поддержки MFC:
Код - C++: [Выделить]
- IAcadApplicationPtr pAcadApp;
- IDispatch* pDispatch = acedGetAcadWinApp()->GetIDispatch(FALSE);
- pDispatch->QueryInterface(__uuidof(IAcadApplication),
- (void**)&pAcadApp);
Обсуждение: http://adn-cis.org/forum/index.php?topic=79.0
Опубликовано 30.05.2013
Отредактировано 08.06.2013 в 02:09:08
Отредактировано 08.06.2013 в 02:09:08