也谈vs2017手工新建ObjectARX2019项目
新建MFC Dll项目
选择使用共享MFC
右键项目属性
选择所有配置,所有平台,修改目标扩展名为.arx
选择调试,在命令中浏览或编辑acadexe路径
选择链接器 ,找到输出文件地址,复制备用
回到调试在命名参数添加小写/LD+输出文件路径 /ld "$(OutDir)$(TargetName)$(TargetExt)"
应用设置
配置Win32平台,
保存选择所有配置不变,平台改为win32,选择c++目录,添加包含ARXSDK路径
添加库目录
应用设置
配置x64平台
保存选择所有配置不变,平台改为x64,选择c++目录添加ARXSDK路径
添加库目录,应用设置,
修改添加代码
打开afxStd.h文件,添加include #include "arxheaders.h"
打开def文件,添加
acrxEntryPoint PRIVATE
acrxGetApiVersion PRIVATE
新建cpp文件
粘贴如下代码
#include "stdafx.h"
// #include <aced.h>
// #include <rxregsvc.h>
void initApp();
void unloadApp();
void helloWorld();
void initApp()
{
// register a command with the AutoCAD command mechanism
acedRegCmds->addCommand(_T("HELLOWORLD_COMMANDS"),
_T("Hello"),
_T("Bonjour"),
ACRX_CMD_TRANSPARENT,
helloWorld);
}
void unloadApp()
{
acedRegCmds->removeGroup(_T("HELLOWORLD_COMMANDS"));
}
void helloWorld()
{
acutPrintf(_T("\nHello World!")); //实现本程序的具体功能
}
extern "C" AcRx::AppRetCode
acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt)
{
switch (msg)
{
case AcRx::kInitAppMsg:
acrxDynamicLinker->unlockApplication(pkt);
acrxRegisterAppMDIAware(pkt);
initApp();
break;
case AcRx::kUnloadAppMsg:
unloadApp();
break;
default:
break;
}
return AcRx::kRetOK;
}
编译生成测试成功。
根据cad版本,这里是64位cad,需要更改平台为x64
开始调试
提示点是
调试acad点是