返回介绍

代码设置

发布于 2023-08-09 23:10:33 字数 1533 浏览 0 评论 0 收藏 0

在代码预编译头文件(stdafx.h)中添加如下 CAD控件\Src\MxDraw5.2\MxInc\MxDraw.h 头文件。

#include "..\..\MxDraw52\Src\MxDraw5.2\MxInc\mxdraw.h"

在dllmain.cpp中,我们将设置导出函数:

声明:

extern "C" _declspec(dllexport) McRx::AppRetCode mcrxEntryPoint( McRx::AppMsgCode msg, void* pkt);

实现:

extern "C" McRx::AppRetCode mcrxEntryPoint( McRx::AppMsgCode msg, void* pkt)
{
	switch( msg )
	{
	case McRx::kInitAppMsg:

		mcrxDynamicLinker->unlockApplication(pkt);

		initApp();

		break;
	case McRx::kUnloadAppMsg:

		unloadApp(); 

		break;
	default:
		break;
	}
	return McRx::kRetOK;
}

并添加:

MC_IMPLEMENT_EXTENSION_MODULE(theMrxDLL);
HINSTANCE _hdllInstance = NULL;

主函数内为:

DllMain(HINSTANCE hInstance, DWORD dwReason, LPVOID lpReserved)
{
	// 如果使用 lpReserved,请将此移除
	UNREFERENCED_PARAMETER(lpReserved);

	if (dwReason == DLL_PROCESS_ATTACH)
	{
		TRACE0("Extended.DLL 正在初始化!\n");

		_hdllInstance =  hInstance;
		if(!theMrxDLL.AttachInstance(hInstance) )
			return 0;

	}
	else if (dwReason == DLL_PROCESS_DETACH)
	{
		TRACE0("Extended.DLL 正在终止!\n");

		theMrxDLL.DetachInstance();
	}
	return 1;   // 确定
}

并添加我们的初始化与注销函数:

void initApp()
{
	CommandTest::RegisterCommand();
}

void unloadApp()
{
	CommandTest::UnRegisterCommand();
}

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文