(6)在VisualC 的工作窗口中输入源文件“Hello.cpp”的内容并保存,程序清单如下:
//Hello.cpp
#includerxregsvc.h
#includeaced.h
#includeadslib.h
//执行函数,在AutoCAD中执行Hello命令时被调用
voidHello()
{
acutPrintf("Hello,ObjectARX!");
}
//初始化函数
//在acrxEntryPoint()函数的kInitAppMsg事件中被调用,
//向AutoCAD命令堆栈中添加新命令组以及ACRX类层次
//中添加新的自定义类,本实例中无自定义类,故不用初始化新类
voidinitApp()
{
//显示提示信息
acutPrintf("初始化函数");
//addCommand函数在AutoCAD命令堆栈中注册
//新的命令组名“HelloARX_COMMANDS”、
//通用命令名“Hello”、
//本地命令名“Hello”和该命令的执行函数Hello()
acedRegCmds-addCommand("HelloARX_COMMANDS","Hello","Hello",
ACRX_CMD_MODAL,Hello);
}
//程序卸载函数
//在acrxEntryPoint()函数的kUnloadAtuLaoShi.comppMsg事件中被调用
//从AutoCAD命令堆栈清除已添加的命令以及从ACRX类层次中清除自定义类
voidunloadApp()
{
//显示提示信息
acutPrintf("卸载函数");
//从命令堆栈中清除命令组“HelloARX_COMMANDS”
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/autocad/)acedRegCmds-removeGroup("HelloARX_COMMANDS");
}
//ARX程序主函数
//与AutoCAD通信的入口,处理AutoCAD发送的各类消息
extern"C"AcRx::AppRetCode
acrxEntryPoint(AcRx::AppMsgCodemsg,void*appId)
{
switch(msg){
caseAcRx::kInitAppMsg:
acrxDynamicLinker-unlockApplication(appId);
acrxDynamicLinker-registerAppMDIAware(appId);
//调用initApp()函数
initApp();
break;
caseAcRx::kUnloadAppMsg:
(本文来源于图老师网站,更多请访问http://m.tulaoshi.com/autocad/)
//调用unloadApp()函数
unloadApp();
}
returnAcRx::kRetOK;
}
Step3建立源文件“Hello.def”
重复Step2中步骤,建立源文件“Hello.def”,
程序内容如下:
LIBRARYHelloARX
DESCRIPTION'ThesimplestObjectARXsampleprogram-Hello'
EXPORTS
acrxEntryPointPRIVATE
acrxGetApiVersionPRIVATE
Step4设置ObjectARX文件路径
(1)选择菜单命令【Tools】→【Options…】,弹出“Options”对话框。
(2)在“Options”对话框中选择“Directories”选项卡。
(3)在“Showdirectoriesfor:”下拉列表中选择“Includefiles”项。
(4)在“Directories:”列表的空白项中添加ObjectARX中“Inc”目录的路径(如图38-4所示)。