ADN Open CIS
Сообщество программистов Autodesk в СНГ

19/03/2014

Разрешение конфликтов MFC между ObjectARX MFC DLL и AutoCAD

Класс CAcModuleResourceOverride обеспечивает очень удобный способ для переключения дескриптора ресурсов MFC между AutoCAD и ресурсами вашего собственного ARX DLL приложения.

Если вам нужно использовать функции пользовательского интерфейса AutoCAD внутри ваших функций, вы можете использовать класс CAcModuleResourceOverride() опираясь на его деструктор (который восстанавливает дескриптор ресурсов MFC AutoCAD)

Вот пример использования:

Код - C++: [Выделить]
  1. class CMyDialog : public CDialog
  2. {
  3. };
  4.  
  5. void ftn()
  6. {
  7.   {
  8.     // Здесь мы должны быть уверены, что используются ресурсы вашей dll
  9.     CAcModuleResourceOverride resourceOverride;
  10.     CMyDialog dlg;
  11.     dlg.DoModal();
  12.   } // Переключаемся обратно на ресурсы AutoCAD
  13.   // теперь безопасно использовать эту функцию
  14.   acedGetFileD(...);
  15.   // теперь возвращаемся к диалогу
  16.   {
  17.     // здесь мы должны быть уверены, что будут использоваться ресурсы из вашей dll
  18.     CAcModuleResourceOverride resourceOverride;
  19.     CMyDialog dlg;
  20.     dlg.DoModal();
  21.   }
  22. }

Источник: http://adndevblog.typepad.com/autocad/2012/09/dealing-with-mfc-resource-conflicts-between-an-objectarx-mfc-dll-and-autocad.html

Обсуждение: http://adn-cis.org/forum/index.php?topic=620

Опубликовано 19.03.2014