3.1.3、为AutoCAD程序实现入口点函数

同c++中的main()入口点函数一样,AutoCAD通过acrxEntryPoint()这个入口点函数调用ObjectARX模块,你需要自己实现这个入口点函数,下面给出说明。

acrxEntryPoint()函数作为ObjectARX应用程序和AutoCAD(或其他调用程序)通讯的入口点函数,ObjectARX应用程序同AutoCAD通讯的过程中会返回运行结果的状态码,所有需要调用的函数定义都是由入口点函数关联的。如果你使用ObjectARX或者acedRegFun()函数定义一个函数,要AutoCAD中运行这个函数,需要发送一个命令,详细说明见(加载一个ObjectARX应用程序)。

acrxEntryPoint()函数有如下声明

extern "C"
AcRx::AppRetCode 
acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt);
msg:代码ObjectARX内核发送给应用程序的消息

pkt:持有包数据值

在这个函数的实现代码中,你需要编写一个switch或者普通的代码来解析当前的消息种类,每个消息对应执行相应的操作,并返回一个整数状态值。

警告:除了kOleUnloadAppMsg消息和kUnloadAppMsg消息,如果这个函数最后返回kRetError那么会导致你的应用程序被卸载。

下面的代码显示了一个有效的switch语句的骨架
AcRx::AppRetCode 
acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt) 
{
    switch(msg) {
        case AcRx::kInitAppMsg:
            break;
        case AcRx::kUnloadAppMsg:
            break;
        ...
        default:
            break;
    }
    return AcRx::kRetOK;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值