ObjectARX, AutoCAD. Среда программирования библиотеки C++

CAcModuleResourceOverride Класс


Используйте образец этого класса, чтобы переключить между средствами доступа ресурса. Когда объект создан, новое средство доступа ресурса переключится в. После разрушения, первоначальное средство доступа ресурса будет восстановлено. Следующий код обеспечивает пример:

Пусто MyFunc ()

{

                 CAcModuleResourceOverride myResources;

}

После входа в эту функцию ресурсы модуля будут выбраны. Когда функциональные возвращения, заданные по умолчанию ресурсы будут восстановлены. Перегрузка ресурса может использоваться способом из трех путей:

§

Используют заданный по умолчанию конструктор (никакие параметры) чтобы переключить к ресурсам модуля. Заданные по умолчанию ресурсы будут восстановлены деструктором. Ресурсы модуля по умолчанию - поддерживаемые CAcExtensionModule DLL'S.

§         Передают NULL (или 0)  конструктору. Ресурсы DLL'S будут выбраны и ресурсы, которые были, в действительности будет восстановлен, когда объект перегрузки разрушен.

§         Передают дескриптор не-NULL к конструктору. Ресурсы связанного модуля будут выбраны и ресурсы, которые были, в действительности будет восстановлен, когда объект перегрузки разрушен.

Имеются две макрокоманды если, названный AC_DECLARE_EXTENSION_MODULE и AC_IMPLEMENT_EXTENSION_MODULE, помогать определять и осуществляют классы в вашем приложении.

Следующий код иллюстрирует, как использовать классы CAcExtensionModule и CAcModuleResourceOverride в ObjectARX-приложении:

AC_IMPLEMENT_EXTENSION_MODULE(theArxDLL);



HINSTANCE _hdllInstance = NULL;

extern "C" int APIENTRY

DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)

{

// Remove this if you use lpReserved

UNREFERENCED_PARAMETER(lpReserved);

if (dwReason == DLL_PROCESS_ATTACH)

{

theArxDLL.AttachInstance(hInstance);

hdllInstance = hInstance;

}

else if (dwReason == DLL_PROCESS_DETACH)

{

theArxDLL.DetachInstance();

}

return 1; // ok

}



Содержание раздела