CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

相关分类

CAcModuleResourceOverride Class

2023-1-1 03:05| 发布者: admin| 查看: 358| 评论: 0|来自: AutoCAD

使用此类的实例在资源提供程序之间切换。构造对象时,将切换新的资源提供程序。销毁后,将还原原始资源提供程序。以下代码提供了一个示例:

void MyFunc ()
{
    CAcModuleResourceOverride myResources;
}

进入此功能后,将选择模块的资源。当函数返回时,将还原默认资源。可以通过以下任一方式选择资源覆盖:

  • 使用默认构造函数(无参数),或传递给(或 0)构造函数。将选择 DLL 的资源。调用析构函数时将还原默认资源。DLL 和默认资源句柄由 DLL 跟踪。NULLCAcModuleResourceOverrideCAcExtensionModule
  • 将非句柄传递给构造函数。将选择与给定句柄关联的模块的资源。调用析构函数时将还原默认资源。NULLCAcModuleResourceOverride

两个宏(和)有助于定义和实现应用程序中的类。AC_DECLARE_EXTENSION_MODULEAC_IMPLEMENT_EXTENSION_MODULE

以下代码说明了如何在 ObjectARX 应用程序中使用 theandclasses:CAcExtensionModuleCAcModuleResourceOverride

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
}

路过

雷人

握手

鲜花

鸡蛋

最新评论

QQ|Archiver|CAD开发者社区 ( 苏ICP备2022047690号-1 )

GMT+8, 2024-5-19 13:59

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部