ObjectARX_for_AutoCAD_2022手动创建项目

本文指导如何在VisualStudio2019中创建一个MFC动态链接库项目,涉及添加包含目录、配置依赖项、编写dllmain和acrxEntryPoint,以及处理编译警告和调试设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

打开VS2019,新建项目,选择MFC动态链接库。选择使用MFC扩展DLL

附加包含目录

选择项目属性->C/C++常规->附加包含目录,配置如下(路径根据实际修改):

附加库目录

选择项目属性->C/C++常规->附加包含目录,配置如下(路径根据实际修改):

附加依赖项

选择项目属性->链接器->常规->附加库目录,配置如下(路径根据实际修改):

附加依赖项

选择项目属性->链接器->输入->附加依赖项,填入以下库

accore.lib
acad.lib
acui24.lib
adui24.lib
acpal.lib
ac1st24.lib
acdb24.lib
acge24.lib
acgiapi.lib
acISMobj24.lib
rxapi.lib

删掉dllmain中的默认代码,写入如下初始代码:

// dllmain.cpp : 定义 DLL 应用程序的入口点。
#include "pch.h"
#include <aced.h>
#include <rxregsvc.h>

void loginCloudDwgServer();

void initApp()
{
	// 注册command
	acedRegCmds->addCommand(L"CLOUD", L"LoginCloudDwg", L"LoginCloudDwg", ACRX_CMD_TRANSPARENT, loginCloudDwgServer);
}

void unloadApp() {
	// 移除命令组
	acedRegCmds->removeGroup(L"CLOUD");
}


void loginCloudDwgServer() {
	// 功能入口,可以是界面程序或其他
	AfxMessageBox(L"云图登录");
}

extern "C" AcRx::AppRetCode acrxEntryPoint(AcRx::AppMsgCode msg, void* pkt)
{
	switch (msg)
	{

	case AcRx::kInitAppMsg://App插件初始化消息
	{
		acrxDynamicLinker->unlockApplication(pkt);
		acrxRegisterAppMDIAware(pkt);
		initApp();
		break;
	}
	case AcRx::kQuitMsg:// 推出消息
	case AcRx::kUnloadAppMsg://App插件卸载消息
	{
		unloadApp();
		break;
	}
	default:
		break;
	}

	return AcRx::kRetOK;
}

修改def文件

; cloudShareLoader.def: 声明 DLL 的模块参数。

LIBRARY	"cloudShareLoader"
EXPORTS
acrxEntryPoint PRIVATE

编译发现一个警告:

解决:def文件中没有加后缀,默认dll,实际我们生成文件为arx,我们修改def的library加上后缀即可。 

设置调试

在项目属性-> 调试->命令中加入cad的路径杰克。

 运行,appload加载arx,输入LoginCloudDwg。

ObjectARX   1. ObjectARX的介绍:   ObjectARX是AutoDesk公司针对AutoCAD平台上的二次开发而推出的一个开发软件包,它提供了以C++为基础的面向对象的开发环境及应用程序接口,能真正快速的访问AutoCAD图形数据库。 与以往的 AutuCAD 二次开发工具 AutoLISP 和ADS不同,ObjectARX应用程序是一个DLL(动态链接库),共享AutoCAD的地址空间,对AutoCAD进行直接函数调用。所以,使用ARX编程的函数的执行速度得以大大提高。ARX 类库采用了标准的C++类库的封装形式,这也大大提高了程序员编程的可靠度和效率。 ObjectARX目前最新的版本是ObjectARX2009,它在原有ObjectARX的基础上,特别增加了XML的支持。XML是可扩展标记语言(eXtensible Markup Language)。它是应用软件与Internet的接口。通过支持XML,为ObjectARX开发网络协作应用提供了有力的支持。   2. 开发环境的设置:   运用ObjectARX进行二次开发,必须首先设置好ObjectARX的开发环境。目前常用的开发环境是Microsoft Visual C++ 6.0。同时,还需要安装ObjectARX SDK,ObjectARX SDK可以在AutoDesk公司的网站上免费下载。不同的AutoCAD版本对应相应的ObjectARX SDK的版本,目前常用的是ObjectARX SDK for AutoCADR14和ObjectARX SDK for AutoCAD2000i。这两个开发工具在设置上略有不同,将进行对比介绍。 安装好VC++和ObjectARX后,就可以开始设置开发环境了。 1) 设置INC和LIB文件寻找路径 INC和LIB文件寻找路径为VC++的环境参数,设置一次即可,对以后的所有项目均有效。 选择 Tools→Options …,出现Option对话框,选择Directories页,在Show Directories for中选择Include files,然后在Directories中加上ARX的INC目录路径c:\objectarx\inc(假定ARX的开发工具在c:\objectarx\中)。 在Show Directories for中选择Library files,然后在Directories中加上ARX的LIB目录路径c:\objectarx\lib(假定ARX的开发工具在c:\objectarx\中)。 2) 建立项目并设置编译环境 一般来说,开发的ObjectARX应用程序都需要支持MFC(如采用对话框等),因此,我们可以直接建立支持MFC的ObjectARX开发项目。每个项目均应设置编译环境,一般项目的编译环境可以有两个设置,分别为发布版本(Win32 Release)和调试版本(Win32 Debug)。在本节里,介绍的是发布版本的设置,而调试版本的设置将在下一节介绍。ObjectARX SDK for AutoCADR14和ObjectARX SDK for AutoCAD2000i在设置上面存在着差别,下面分别进行介绍。 对于ObjectARX SDK for ACADR14 a. 选择 File→New ,选择projects页→MFC AppWizard,给定项目名(helloR14)及位置,选OK,在DLL type中选择MFC Extension DLL(using share MFC DLL),再选择Finish。建立项目。 b. 选择Build→Set Active Configration…→helloR14 Win32 Release,然后选OK。 c. 选择Project→Setting,出现Project Settings对话框,开始设置编译环境。 d. General中,Microsoft Foundation Classes选择Use MFC in a Share DLL。 e. C/C++→Code Generation中,Use run-time library选择Multithreaded DLL。 f. C/C++→Preprocessor中,Preprocessor definitions填入ACRXAPP,RADPACK,WIN32,NDEBUG,_WINDOWS。 g. Link→General中,Output file Name填入helloR14.arx。 h. Link→Input中,Object/library modules添加Acad.lib acedapi.lib rxapi.lib libacge.lib库文件名。 i. Lin
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我啥都会

如果觉得对您有帮助,打赏一下吧

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值