首页 > 其他 > 详细

也谈vs2017手工新建ObjectARX2019项目

时间:2021-05-12 15:09:30      阅读:19      评论:0      收藏:0      [点我收藏+]

新建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点是

正常情况下回启动cad,自动加载arx,输入命令hello,helloworld成功

技术分享图片

也谈vs2017手工新建ObjectARX2019项目

原文:https://www.cnblogs.com/edata/p/14759087.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!