CAD开发者社区

 找回密码
 立即注册

QQ登录

只需一步,快速开始

ObjectARX 开发指南

实现 AutoCAD 的入口点

2023-1-1 07:10| 发布者: admin| 查看: 320| 评论: 0|来自: AutoCAD

AutoCAD通过调用ObjectARX模块,它取代了C++程序的功能。您负责实现该函数,如本节所述。acrxEntryPoint()main()acrxEntryPoint()

该函数充当AutoCAD(或其他主机程序)与ObjectARX应用程序通信的入口点。ObjectARX 程序可以通过返回状态代码与 AutoCAD 进行通信。所有调用定义函数的请求都是由函数发出的。如果使用 ObjectARX 或函数定义新命令,AutoCAD 将立即执行与该命令关联的函数(请参见加载 ObjectARX 应用程序)。acrxEntryPoint()acedDefun()acrxEntryPoint()acedRegFunc()

该函数具有以下签名: acrxEntryPoint()

extern "C"
AcRx::AppRetCode 
acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt);
.msg

表示从 ObjectARX 内核发送到应用程序的消息。

PKT

保存数据包数据值。

应用代码

包含返回到 AutoCAD 的状态代码。

在函数的定义中,您可以编写 switch 语句或类似代码来解密来自 AutoCAD 的消息,执行与每条消息相关的适当操作,并返回整数状态值。acrxEntryPoint()

危险:使用 for 函数的最终返回值将导致应用程序被卸载,但消息和除外。在这些情况下,如果返回 ifis,则不会卸载应用程序。kRetErroracrxEntryPoint()kOleUnloadAppMsgkUnloadAppMsgkRetError

以下代码显示了有效 switch 语句的框架:

extern "C"
AcRx::AppRetCode 
acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt) 
{
    switch(msg) {
        case AcRx::kInitAppMsg:
            break;
        case AcRx::kUnloadAppMsg:
            break;
        ...
        default:
            break;
    }
    return AcRx::kRetOK;
}

路过

雷人

握手

鲜花

鸡蛋

最新评论

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

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

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

返回顶部