ObjectARX_for_AutoCAD_2022手动创建项目

打开VS2019,新建项目,选择动态链接库。选择使用共享MFC DLL的常规DLL

ObjectARX_for_AutoCAD_2022手动创建项目_第1张图片

一般而言,我们都是需要使用mfc类库的,打开项目属性->高级->高级属性->mfc的使用,选择在g共享DLL中使用MFC。 并修改扩展,我们的objectarx项目后缀都是.arx

ObjectARX_for_AutoCAD_2022手动创建项目_第2张图片

附加包含目录

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

ObjectARX_for_AutoCAD_2022手动创建项目_第3张图片

附加库目录

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

附加依赖项

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

ObjectARX_for_AutoCAD_2022手动创建项目_第4张图片

附加依赖项

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

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 
#include 

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

编译项目,发现如下:

ObjectARX_for_AutoCAD_2022手动创建项目_第5张图片

在framework.h中去除windows.h头文件,然后加入afxwin.h即可。

设置调试

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

然后运行时即可带起cad,然后appload选择我们的arx文件,发现报错了,原来是忘记加入def文件。选择项目,右键添加

ObjectARX_for_AutoCAD_2022手动创建项目_第6张图片

 填入以下

LIBRARY	"Example"
EXPORTS
acrxEntryPoint PRIVATE
acrxGetApiVersion PRIVATE

再次编译,运行,appload加载arx,输入LoginCloudDwg。

ObjectARX_for_AutoCAD_2022手动创建项目_第7张图片

你可能感兴趣的:(CAD开发笔记,ObjectArx)