CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

AutoCAD 2025 开发者帮助

创建 ObjectARX MFC 应用程序框架

2024-5-18 19:24| 发布者: admin| 查看: 102| 评论: 0|原作者: admin|来自: AutoCAD

创建 ObjectARX MFC 应用程序框架

为 ObjectARX MFC 应用程序创建项目

  1. 创建一个名为 AsdkAcUiSample 的新 MFC DLL 项目。
  2. 在“应用程序设置”中,选择“MFC 扩展 DLL”,然后单击“完成”。
  3. 打开生成的 CPP 文件。删除调用,添加调用,并按照 CAcModuleResourceOverride 类部分中所述修改函数。AFX_EXTENSION_MODULEAC_IMPLEMENT_EXTENSION_MODULEDllMain()
  4. 添加以下代码以设置AutoCAD命令,然后:acrxEntryPoint
void dialogCreate()
{
    acutPrintf("\nAcUi Dialog Sample");
}

以下调用使用宏中的模块资源实例:addCommand()AC_IMPLEMENT_EXTENSION_MODULE

static void initApp()
{
    CAcModuleResourceOverride resOverride;
    acedRegCmds->addCommand(
        "ASDK_ACUI_SAMPLE", 
        "ASDKACUISAMPLE", 
        "ACUISAMPLE", 
        ACRX_CMD_MODAL, 
        dialogCreate,
        NULL,
        -1,
        theArxDLL.ModuleResourceInstance());
}

应用程序卸载时调用以下函数。此时,必须分离资源实例:unloadApp()

static void unloadApp()
{
    // Do other cleanup tasks here  
    acedRegCmds->removeGroup("ASDK_ACUI_SAMPLE");
    theArxDLL.DetachInstance();
}
// Entry point
//
extern "C" AcRx::AppRetCode acrxEntryPoint(
    AcRx::AppMsgCode msg, void* appId)
{
    switch( msg ) 
    {
        case AcRx::kInitAppMsg: 
            acrxDynamicLinker->unlockApplication(appId);
            acrxDynamicLinker->registerAppMDIAware(appId);
            initApp(); 
            break;
        case AcRx::kUnloadAppMsg: 
            unloadApp(); 
            break;
        case AcRx::kInitDialogMsg:
            break;
        default:
            break;
    }
    return AcRx::kRetOK;
}

创建 AsdkAcUiSample.h 头文件,并将以下行添加到该文件中:

#include "resource.h" // main symbols
#define PI  3.14159265359
// Forward declaration for the entry point function of 
// our application
void testCreate();

将以下包含文件添加到AsdkAcUiSample.cpp

#include "AsdkAcUiSample.h"
#include "AcExtensionModule.h"

您还需要将 ObjectARX 库添加到项目文件中,更改 .dll 扩展名为 .arx,并使用正确的导出修改 .def 文件。

然后,您可以编译并加载应用程序。

父主题:

  1. 使用 AdUi 和 AcUi

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

GMT+8, 2025-3-5 18:10

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部