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()函数有如下声明
pkt:持有包数据值
在这个函数的实现代码中,你需要编写一个switch或者普通的代码来解析当前的消息种类,每个消息对应执行相应的操作,并返回一个整数状态值。
警告:除了kOleUnloadAppMsg消息和kUnloadAppMsg消息,如果这个函数最后返回kRetError那么会导致你的应用程序被卸载。
下面的代码显示了一个有效的switch语句的骨架
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; }
相关文章推荐
- C++ 程序启动入口函数main还是winmain?
- 托盘程序的实现(delphi的消息处理函数)
- Dll调用主程序(客户端、外部程序、宿主)函数的实现
- 编写一个函数,实现把C/C++程序代码中的注释去掉,并把结果返回。
- C/C++程序入口函数的隐藏方法
- 编写实现函数strcat功能的程序
- 使用CreateProcess函数实现隐秘的程序调用之二:使用匿名管道
- 使用CreateProcess函数实现隐秘的程序调用
- C语言中的可变参数函数的浅析(以Arm 程序中的printf()函数实现为例)
- 实现执行外部程序,并等待程序结束的函数。
- [转载] linux启动分析(5)---C程序入口函数start_kernel
- 编写程序:从键盘上输入若干个整数(以输入-1作为结束标识),输出这些数中的最大值和最小值,要求编写一个函数实现最大值和最小值的求取。
- 黑莓程序入口函数main误区
- ACE程序入口函数替换机制分析
- linux 系统下使用C程序实现时钟的函数
- 类成员函数作为多线程的入口函数的实现方法
- pvtrace和Graphviz实现对linux下C程序的函数调用跟踪
- 《Windows核心编程》学习笔记(3)– 程序入口函数
- 组合数求解公式为C……。编程序输入m,n,输出组合数,要求用自定义函数实现求阶乘
- 类成员函数作为多线程的入口函数的实现方法