码迷,mamicode.com
首页 > 其他好文 > 详细

也谈vs2010手工新建ObjectARX2013项目

时间:2021-05-24 06:13:46      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:dia   ace   cmd   man   ada   return   默认   int   dcom   

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

技术图片

默认即可

技术图片

解决方案右键项目属性

技术图片

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

技术图片

添加包含目录,当前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

技术图片

也谈vs2010手工新建ObjectARX2013项目

标签:dia   ace   cmd   man   ada   return   默认   int   dcom   

原文地址:https://www.cnblogs.com/edata/p/14757953.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!