也谈vs2010手工新建ObjectARX2013项目

新建MFC Dll项目,设置项目名称和保存位置.

默认即可

解决方案右键项目属性

修改目标扩展名为.arx,注意当前平台为win32

修改md模式

修改_DEBUG预定义为_NDEBUG

添加包含目录,当前win32添加 inc和inc-win32目录

添加库目录,lib-win32

选择链接器,常规,选择输出路径,右键复制

修改调试,命令为cad的exe路径,命令参数为小写的LD+ 复制的输出地址 /ld "$(OutDir)$(TargetName)$(TargetExt)"

保存修改后打开afxStd.h文件.末尾添加 #include "arxheaders.h"

新建一个cpp文件.


粘贴如下helloWorld代码

#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; 
} 

修改函数导出方式一,去掉模块定义文件(推荐)

修改函数导出方式二,打开def文件.加入如下代码

acrxEntryPoint PRIVATE 
acrxGetApiVersion PRIVATE 

尝试编译,编译成功

配置x64版本.

右键项目属性,当前只有win32平台

选择配置管理器,选择新建x64平台


更改包含目录为inc-x64

更改库目录为lib-x64

重新编译 确保编译平台为x64


启动调试,正常情况会启动cad,会自动加载了arx.


输入命令hello,成功输出helloworld

posted @ 2021-05-11 23:26  edata  阅读(94)  评论(0编辑  收藏  举报