也谈vs2019手工新建ObjectARX2021项目

条件准备 ARXSDK 和 VS2019(要选择安装c++,mfc,windows10SDK) 略过!

ARXSDK可以参考 https://www.cnblogs.com/edata/p/14243995.html
VS2019自行解决.

新建mfc动态链接库

也谈vs2019手工新建ObjectARX2021项目_第1张图片

输入项目名称和项目保存位置

也谈vs2019手工新建ObjectARX2021项目_第2张图片

默认使用共享mfc dll即可

也谈vs2019手工新建ObjectARX2021项目_第3张图片

解决方案资源管理中选择项目右键属性,更改平台为x64.

也谈vs2019手工新建ObjectARX2021项目_第4张图片

高级 高级属性改目标扩展名为arx

也谈vs2019手工新建ObjectARX2021项目_第5张图片

添加ARXSDK包含目录.

也谈vs2019手工新建ObjectARX2021项目_第6张图片

添加ARXSDK库目录

也谈vs2019手工新建ObjectARX2021项目_第7张图片

切换当前编译平台为x64,选择pch.h头文件,添加 #include “arxheaders.h”

也谈vs2019手工新建ObjectARX2021项目_第8张图片

添加一个cpp文件

也谈vs2019手工新建ObjectARX2021项目_第9张图片

在cpp文件中写入如下helloword代码.

#include "pch.h"
//#include "stdafx.h" //vs2019默认预定头文件的名称变为pch.h
// #include    //arxheaders.h已经包含,下同
// #include   
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;
}

修改def文件

也谈vs2019手工新建ObjectARX2021项目_第10张图片

acrxEntryPoint PRIVATE 
acrxGetApiVersion PRIVATE 

生成解决方案

也谈vs2019手工新建ObjectARX2021项目_第11张图片

提示成功

也谈vs2019手工新建ObjectARX2021项目_第12张图片

重新打开项目属性,找到链接器的常规选项,选择输出文件的文字,复制.

也谈vs2019手工新建ObjectARX2021项目_第13张图片

修改调试选项的命令为cad的exe路径.命令参数为,注意是小写的LD+刚刚复制的连接器输出文字路径 /ld "$(OutDir)$(TargetName)$(TargetExt)"

也谈vs2019手工新建ObjectARX2021项目_第14张图片

开始调试

也谈vs2019手工新建ObjectARX2021项目_第15张图片
也谈vs2019手工新建ObjectARX2021项目_第16张图片

正常情况下会启动cad,并会自动加载arx.输入命令即可执行hellowold

也谈vs2019手工新建ObjectARX2021项目_第17张图片

你可能感兴趣的:(ObjectARX,c++)