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

news2024/12/25 13:50:12

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;
    }
    else
        m_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,引入代码没起作用,希望有成功的可以交流下。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/140411.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

四、常用注解

文章目录四、常用注解1、TableName1.1 问题1.2 通过TableName解决问题1.3 通过全局配置解决问题2、TableId2.1 问题2.2 通过TableId解决问题2.3 TableId的value属性2.4 TableId的type属性2.5 雪花算法3、TableField3.1 情况13.2 情况24、TableLogic4.1 逻辑删除4.2 实现逻辑删除…

JavaScript 自执行函数防止冲突全局作用域变量 - 在线客服源码实现弹窗效果JavaScript SDK...

当我在实现在线客服源码弹窗效果JavaScript SDK时,对外公开的SDK代码就是使用的自执行函数的形式。 使用自执行函数来实现 JavaScript SDK 有以下好处: 封装代码:自执行函数可以将你的 JavaScript 代码封装起来,从而避免在全局作用…

文件字节输出流、文件拷贝、资源释放的2种方式

文件字节输出流:写字节数据到文件: API: 注意:close() 包含了 flush() ; 关闭后流就不可以继续使用了 写一个字节出去: 98表示一个字节 写一个字节数组: 注意:写数字和字母可以直接写出去,但…

【二分查找】有界数组中指定下标处的最大值

题目描述 给你三个正整数 n、index 和 maxSum 。你需要构造一个同时满足下述所有条件的数组 nums&#xff08;下标 从 0 开始 计数&#xff09;&#xff1a; nums.length nnums[i] 是 正整数 &#xff0c;其中 0 < i < nabs(nums[i] - nums[i1]) < 1 &#xff0c;其…

leetcode 2244. Minimum Rounds to Complete All Tasks(完成所有task至少要多少轮)

tasks数组里面的数字表示难度的等级&#xff0c;每一轮只能完成2 或者 3个同等级的task, 问至少需要多少轮能完成所有的task, 不能完成的返回-1. 思路&#xff1a; 先来看下什么情况下不能完成。 由于一轮只能完成2 或 3个&#xff0c;那如果该等级的task只有一个呢&#xff…

P1-- 信号--通讯原理

前言&#xff1a; 最近看了《无线系统设计与国际标准》后面的几个核心技术 OFDM,Modulation&#xff0c;格雷码&#xff0c;MIMO 等技术&#xff0c;其底层的数学思想主要包括傅里叶变换 &#xff0c;狄拉克函数&#xff0c;卷积&#xff0c;线性代数基础运算。 这边结合 北京…

Electron开发-从推门到进门

一、Electron 的介绍 Electron是利用web前端技术进行桌面应用开发的一套框架。是由 github 开发的开源框架&#xff0c;允许开发者使用 Web 技术构建跨平台的桌面应用&#xff0c;它的基本结构&#xff1a; Electron Chromium Node.js Native API Chromium&#xff1a;为 …

大数据挖掘-伤寒论和金匮要略(COVID-19用药启示录)

来自Toby老师&#xff0c;大数据挖掘-伤寒论和金匮要略 大家好&#xff0c;我是Toby老师&#xff0c;三年来新冠病毒肆虐全球&#xff0c;带来一些列症状&#xff0c;例如发热&#xff0c;恶寒&#xff0c;咳嗽&#xff0c;咽喉痛&#xff0c;腹泻&#xff0c;心脑血管疾病等等…

最低成本尝试做游戏的方式

本文首发于微信公众号&#xff1a;小蚂蚁教你做游戏。欢迎关注领取更多学习做游戏的原创教程资料&#xff0c;每天学点儿游戏开发知识。嗨&#xff01;大家好&#xff0c;我是小蚂蚁。如果说有 100 个人想过去做游戏的话&#xff0c;那么最终大概只有不到 20 个人真的去尝试了&…

【TypeScript】TS类型断言-类型的声明和转换(五)

&#x1f431;个人主页&#xff1a;不叫猫先生 &#x1f64b;‍♂️作者简介&#xff1a;前端领域新星创作者、华为云享专家、阿里云专家博主&#xff0c;专注于前端各领域技术&#xff0c;共同学习共同进步&#xff0c;一起加油呀&#xff01; &#x1f4ab;系列专栏&#xff…

echartjs 实现 cross (十星辅助线)跟随吸附高亮点

前言 项目是金融项目&#xff0c;就像支付宝基金的走势图一样。但图表库使用的是 echart 而不是 antv 的 f2&#xff0c;要问为什么不直接用 f2 &#xff1f;问就是因为项目历史包袱。 背景 了解过 echart 的都知道&#xff0c;官方提供了十星辅助线&#xff0c;只要设置 ax…

服务端渲染和客户端渲染

介绍 服务端渲染 servlet开发 浏览器请求servlet&#xff0c;servlet在服务端生成html 响应给浏览器&#xff0c;浏览器展示html的内容&#xff0c;这个过程就是服务端渲染。 输入url——>请求到tomcat——Servlet / jsp来解析解析用户请求并处理——>服务端渲染生成ht…

收藏网页版小游戏:蜘蛛纸牌、扫雷、水果忍者、打地鼠、吃豆人

学习之余当然是摸鱼了&#xff0c;这里分享几个不用下载直接在线玩耍的游戏。有蜘蛛纸牌网页版在线玩、在线扫雷小游戏、在线玩的水果忍者、吃豆人、打地鼠、3D模仿。 下面我将一个个列出来。欢迎体验收藏&#xff01; 蜘蛛纸牌&#xff1a;这是一款刺激好玩的棋牌小游戏。大家…

【C语言航路】第九站:数据的存储

目录 一、数据类型介绍 1.基本的内置数据类型 2.类型的基本归类 二、整型在内存中的存储 1.原码反码补码 2.大端字节序与小端字节序 3.一些经典的题目 三、浮点型在内存中的存储 总结 一、数据类型介绍 1.基本的内置数据类型 这部分我们在一开始的时候已经说过了&…

中职组网络安全2022年安徽省赛信息隐藏与探索

首先这一套题目我们先看一下环境: 以上来给到了一个主页的网站,做这样的题目我们第一个想到的就是源代码,于是我们查找源代码看看里边有什么东西: 在contact.php中发现了flag1,但是这一看就是一个base64代码,我们将其进行解密:

华脉智联可视化指挥调度系统

华脉智联可视化指挥调度系统&#xff0c;多端一体化综合智能指挥调度平台&#xff0c;可以实现对各级人员、设备、系统统一指挥&#xff0c;应急调度&#xff0c;为行业应用提供可视化智能指挥调度系统解决方案。 1、可视化指挥调度系统介绍 可视化指挥调度系统基于现有的4G通信…

处理WM_KILLFOCUS消息时需要注意的地方

之前我在一篇文章中曾经提过&#xff0c;不应该利用 WM_KILLFOCUS 消息中对表单的字段进行有效性校验。 今天的文章&#xff0c;我将介绍另外一个反面例子&#xff0c;来表现当使用 WM_KILLFOCUS 消息处理焦点相关的问题时所带来的混乱。 假设&#xff0c;有一个编辑框控件使用…

编写 MBR 主引导记录

文章目录前言mbs.S代码实验操作前言 本博客记录《操作系统真象还原》第二章最后一节的实验操作~ 实验需要安装Bochs软件&#xff0c;具体可食用Bochs下载安装博客。 实验环境&#xff1a;ubuntu18.04VMware 实验内容&#xff1a;在屏幕上打印字符串“1 MBR”&#xff0c;背…

C进阶_C语言_指针进阶_C语言指针进阶

除了自己的无知&#xff0c;我什么都不懂。 ——苏格拉底 *此博客为进阶指针详解&#xff0c;需要有一定的初阶指针基础。 我们知道&#xff0c;指针就是个变量&#xff0c;用来存放地址&#xff0c;地址唯一标识一块内存空间。 指针的大小是固定的4/8个字节。在32位平台上是…

003-Ensp-实验-配置DHCP

实验要求 1. 根据网络结构开DHCP服务&#xff0c;使PC1 / PC2 自动获取IP地址并可以互Ping 网络结构 实验步骤 1. 配置AR2路由器g0/0/0接口IP&#xff0c;开启DHCP <Huawei>system-view [Huawei]dhcp enable [Huawei]interface g0/0/0 [Huawei-GigabitEthernet0/0/0]…