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

17/03/2014

MFC: Проблемы с CAcModuleResourceOverride

Возможно вы замечали, что при использовании объекта CAcModuleResourceOverride для переключения дескриптора ресурсов по-умолчанию (дескриптора ресурсов AutoCAD) на дескриптор ресурсов вашего файла приложения, невозможно вызвать AutoCAD или некоторые ARX функции, такие как acedGetFileD().

Причина в том, что в этот момент дескриптор ресурсов переключается  на файл ресурсов вашего приложения, а не на файл ресурсов AutoCAD. Затем внутри функции (когда дескриптор ресурсов указывает на ваш файл), вы вызываете функцию AutoCAD, которой требуется доступ к ресурсам AutoCAD (а не вашим). Например, функция acedGetFileD() пытается найти свой шаблон диалога в файле ресурсов по-умолчанию и не может это сделать. Чтобы исправить эту проблему, переключите дескриптор ресурсов на файл AutoCAD. Смотрите следующий код:

Код - C++: [Выделить]
  1. HINSTANCE hOld = AfxGetResourceHandle () ; // Не обязательно
  2. AfxSetResourceHandle (acedGetAcadResourceInstance ()) ;
  3. acedGetFileD(...) ;
  4. AfxSetResourceHandle (hOld) ; // Не обязательно – только для восстановления

 

Источник: http://adndevblog.typepad.com/autocad/2013/01/mfc-problem-with-cacmoduleresourceoverride.html

 

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

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