本地环境

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重新编译后进行调用

在这里插入图片描述
#项目附件和大漠插件地址
项目地址
link
大漠插件地址
link

Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐