- UID
- 516517
- 积分
- 0
- 精华
- 贡献
-
- 威望
-
- 活跃度
-
- D豆
-
- 在线时间
- 小时
- 注册时间
- 2006-11-16
- 最后登录
- 1970-1-1
|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?立即注册
×
// Hello.cpp
#include <rxregsvc.h>
#include <aced.h>
#include <adslib.h>
// 执行函数,在AutoCAD中执行Hello命令时被调用
void Hello()
{
acutPrintf("Hello, Object ARX!");
}
// 初始化函数
// 在acrxEntryPoint()函数的kInitAppMsg事件中被调用,
// 向AutoCAD命令堆栈中添加新命令组以及ACRX类层次
// 中添加新的自定义类,本实例中无自定义类,故不用初始化新类
void initApp()
{[Page] //显示提示信息
acutPrintf("\n初始化函数\n");
// addCommand函数在AutoCAD命令堆栈中注册
// 新的命令组名“HelloARX_COMMANDS”、
// 通用命令名“Hello”、
// 本地命令名“Hello”和该命令的执行函数Hello()
acedRegCmds->addCommand("HelloARX_COMMANDS","Hello","Hello",
ACRX_CMD_MODAL,Hello);
}
// 程序卸载函数
// 在acrxEntryPoint()函数的kUnloadAppMsg事件中被调用
// 从AutoCAD命令堆栈清除已添加的命令以及从ACRX类层次中清除自定义类
void unloadApp()
{
// 显示提示信息
acutPrintf("\n卸载函数\n");
// 从命令堆栈中清除命令组“HelloARX_COMMANDS”
acedRegCmds->removeGroup("HelloARX_COMMANDS");
}
// ARX程序主函数
// 与AutoCAD通信的入口,处理AutoCAD发送的各类消息
extern "C" AcRx::AppRetCode
acrxEntryPoint(AcRx::AppMsgCode msg, void* appId)
{
switch (msg) {
case AcRx::kInitAppMsg:
acrxDynamicLinker->unlockApplication(appId);
acrxDynamicLinker->registerAppMDIAware(appId);
//调用initApp()函数
[Page] initApp();
break;
case AcRx::kUnloadAppMsg:
//调用unloadApp()函数
unloadApp();
}
return AcRx::kRetOK;
}
Step 3 建立源文件“Hello.def”
重复Step 2中步骤,建立源文件“Hello.def”,
程序内容如下:
LIBRARY HelloARX
DESCRIPTION The simplest ObjectARX sample program - Hello
EXPORTS
acrxEntryPoint PRIVATE
acrxGetApiVersion PRIVATE |
|