Visual Studio 2019,C++MFC免注册调用大漠插件图文教程(包含源码)
·
文章目录
本地环境
win10
大漠插件3.1233(最后的免费版本)
vs2019版本:

参考地址:https://blog.csdn.net/a756598009/article/details/126358400?spm=1001.2101.3001.6650.7&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-7-126358400-blog-128612652.235%5Ev38%5Epc_relevant_anti_t3_base&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EBlogCommendFromBaidu%7ERate-7-126358400-blog-128612652.235%5Ev38%5Epc_relevant_anti_t3_base&utm_relevant_index=11
操作步骤
1.新建一个MFC工程,取名dmHelp


1.1选择基于对话框的程序,点击完成

1.2清除掉所有其它控件,拖一个按钮控件用于调测


2.添加dm.dll动态链接库到MFC工程
此处有个坑,vs2019不能直接用类向导,直接添加
类型库中的MFC类


2.1我们换种方式,点击项目右键-》添加-》新建项,

2.2选择MFC下的TypeLib种的MFC类,

2.3修改为文件,选择dm.dll位置,添加到实现接口


2.4添加成功后,项目下会多一个Cdmsoft.h类

3.添加代码进行调用
3.1修改dm.dll引入路径
双击打开头文件修改成 #import “dm.dll” no_namespace,使用根路径,并将dm.dll文件复制到项目中


3.2点击编译后,在复制一份到exe中


3.3接着双击按钮进入函数

3.4在控件事件上面加这些代码

#include "Cdmsoft.h"
Idmsoft * InitNewDm()
{
Idmsoft*m_dm = NULL;
//COleVariant temp1,temp2;
bool m_bInit = false;
//下面直接加载dll创建对象,避免进行注册文件
typedef HRESULT(__stdcall * pfnGCO) (REFCLSID, REFIID, void**);
pfnGCO fnGCO = NULL;
HINSTANCE hdllInst = LoadLibrary(L"dm.dll");
fnGCO = (pfnGCO)GetProcAddress(hdllInst, "DllGetClassObject");
if (fnGCO != 0)
{
IClassFactory* pcf = NULL;
HRESULT hr = (fnGCO)(__uuidof(dmsoft), IID_IClassFactory, (void**)&pcf);
if (SUCCEEDED(hr) && (pcf != NULL))
{
hr = pcf->CreateInstance(NULL, __uuidof(Idmsoft), (void**)&m_dm);
if ((SUCCEEDED(hr) && (m_dm != NULL)) == FALSE)
return false;
}
pcf->Release();
m_bInit = true;
}
else
m_bInit = false;
return m_dm;
}

Idmsoft *dm = InitNewDm();
CString c= dm->Ver();
MessageBoxW(c);
3.5重新编译后进行调用
更多推荐




所有评论(0)