17/03/2014
MFC: Проблемы с CAcModuleResourceOverride
Возможно вы замечали, что при использовании объекта CAcModuleResourceOverride для переключения дескриптора ресурсов по-умолчанию (дескриптора ресурсов AutoCAD) на дескриптор ресурсов вашего файла приложения, невозможно вызвать AutoCAD или некоторые ARX функции, такие как acedGetFileD().Причина в том, что в этот момент дескриптор ресурсов переключается на файл ресурсов вашего приложения, а не на файл ресурсов AutoCAD. Затем внутри функции (когда дескриптор ресурсов указывает на ваш файл), вы вызываете функцию AutoCAD, которой требуется доступ к ресурсам AutoCAD (а не вашим). Например, функция acedGetFileD() пытается найти свой шаблон диалога в файле ресурсов по-умолчанию и не может это сделать. Чтобы исправить эту проблему, переключите дескриптор ресурсов на файл AutoCAD. Смотрите следующий код:
Код - C++: [Выделить]
- HINSTANCE hOld = AfxGetResourceHandle () ; // Не обязательно
- AfxSetResourceHandle (acedGetAcadResourceInstance ()) ;
- acedGetFileD(...) ;
- 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