CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

创建 ObjectARX MFC 应用程序框架

2023-1-1 02:48| 发布者: admin| 查看: 2115| 评论: 0|来自: AutoCAD

为 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文件。

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


路过

雷人

握手

鲜花

鸡蛋

最新评论

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部