您的位置:首页 > 其它

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

2014-08-04 22:09 246 查看
同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;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: