C++ 大漠插件免注册调用

1: 参考文章: https://blog.csdn.net/chuhe163/article/details/112745590

2: 免注册调用代码实现

2.1 先建一个空的mfc项目

2.2 拷贝dm.dll 到文件项目所在文件夹。

2.2.1 拷贝到项目后,右键项目->添加 ->现有项 ->选择dm.dll

2.3 在mfc文件中增加如下代码。然后右键点击项目->重新生成。

#import “dm.dll” no_namespace

2.3.1 这个时候在Debug目录会生成dm.tlh和dm.tli两个文件。

2.3.2 打开dm.tlh进行修改.注意一定是dm.tlh。

修改前:

修改后:

2.3.3 将dm.tlh和dm.tli两个文件复制到项目目录。然后右键项目->添加 ->现有项 ->选择dm.tlh和dm.tli(具体操作,类似2.2.1)

2.4 准备开始调用

2.4.1 在要调用的类里面增加如下代码。

#include “dm.tlh” //大漠插件,拷贝到项目目录里了Idmsoft* GetDmObject(){Idmsoft* m_dm = NULL;bool m_bInit = false;//直接加载dll创建对象,避免进行注册文件typedef HRESULT(_stdcall* pfnGCO)(REFCLSID, REFIID, void**);pfnGCO fnGCO = NULL;HINSTANCE hdllInst = LoadLibrary(_T(“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 NULL;}pcf->Release();m_bInit = true;}elsem_bInit = false;return m_dm;}

2.4.2 开始调用

Idmsoft* pDm = GetDmObject();long dm_ret = pDm->Reg(_T(“注册码”), _T(“附加码”));if (dm_ret != 1){Log(_T(“收费注册失败,返回值:%d”), dm_ret);//delete g_dm;return 0;}CString v = pDm->Ver();Log(v);

3:

3.1 大漠下载相关信息::http://www.dmcj.vip/zhuce/

3.2 大漠插件包里有个“大漠类库生成工具v26.0.exe”,点击后“选择dm.dll”的位置,然后点击”生成”,就会生成各种语言的支持库。

C++代码为:

读我.txt里的内容为:

生成的obj.h和obj.cpp即是使用在VC++平台下的类库封装. 具体如何使用这个类,请查看example(ui).rar,example(console).rar以及example(多线程模板).rar的工程. vs2008 vs2010 vs2012 vs2015系列都是一样的.

我使用的是vs2022,引入代码没起作用,希望有成功的可以交流下。


比丘资源网 » C++ 大漠插件免注册调用

发表回复

提供最优质的资源集合

立即查看 了解详情