因工作需要,项目需求(要编写一个营销软件,其中一个功能是控制QQ和微信发送广告消息给指定的联系人或群组,

因为我Windows和逆向水平还不到家,起初的调用Windows API的设计方案不可行,于是只好使用第三方库:大漠插件=_=),

故采用大漠插件实现我所需要的功能。关于大漠插件,不多说,很多人用它写辅助=_=更多详细介绍,请参考这里

本来是想用DuiLib做界面的(感觉用DuiLib做界面更灵活),但考虑到开发效率(其实最重要的是我对Win32和MFC的熟悉程

度还不够),于是我用了Qt。

进入正题,如何在Qt中使用大漠插件?

首先,下载大漠插件,提取码:91c0(从版本3.1235开始,必须付费后才能使用,我用的是3.1233)。

然后,对大漠插件进行注册(不注册也能调用其中的接口,不过那是另一种使用大漠插件的方法,在此不做描述),以管理员

身份运行cmd,执行regsvr32 大漠插件绝对路径名,例如:regsvr32 E:\Packages\C++\大漠插件\dm.dll,系统会提示注册成功

(可以编写代码完成注册,不过应用要以管理员身份运行)。

接着,使用Qt的一个工具dumpcpp导出dm.dll对应的.h和.cpp文件(在我的电脑上,这个工具的位置是D:\Qt5.9.0\5.9\msvc2015\bin)。

运行命令dumpcpp 大漠插件文件名,例如:dumpcpp E:\Packages\C++\大漠插件\dm.dll,会生成dm.h和dm.cpp(我没有把dumpcpp

添加到环境变量,所以dm.h和dm.cpp的生成位置在D:\Qt5.9.0\5.9\msvc2015\bin),把生成的头文件和源文件移动并添加到自己的工程里。

最后,在pro文件中加入axcontainer,例如:QT += core gui axcontainer(因为大漠插件是采用COM接口编写的,所以要添加axcontainer模块),

接下来包含头文件dm.h后就可以开始调用大漠接口了^_^以下是简单的示例:

    Dm::Idmsoft dm;
if (dm.setControl("dm.dmsoft")) //初始化COM对象
{
QMessageBox::information(this, "DMTest", "大漠插件版本:" + dm.Ver());
}
else
{
QMessageBox::critical(this, "错误", "大漠插件初始化失败,请先注册");
}

在Qt中使用大漠插件的更多相关文章

  1. 在MFC中使用大漠插件

    打开Class Wizard,Add Class...->MFC Class From TypeLib... File->Location->>> Finish-> ...

  2. Qt中如何 编写插件 加载插件 卸载插件

    Qt中如何 编写插件 加载插件 卸载插件是本文要介绍的内容.Qt提供了一个类QPluginLoader来加载静态库和动态库,在Qt中,Qt把动态库和静态库都看成是一个插件,使用QPluginLoade ...

  3. 在Qt中如何编写插件,加载插件和卸载插件(转)

    Qt提供了一个类QPluginLoader来加载静态库和动态库,在Qt中,Qt把动态库和静态库都看成是一个插件,使用QPluginLoader来加载和卸载这些库.由于在开发项目的过程中,要开发一套插件 ...

  4. QT中静态库的生成与使用

    一. 静态库的生成    1. 测试目录: lib    2. 源码文件名: mywindow.h, mywindow.cpp, 类MyWindow继承于QPushButton, 并将文字设置为&qu ...

  5. Qt中使用Firebird 和 Firebird Embedded

    编译数据库连接插件 拷贝ibase.h,fbclient_ms.lib(改名gds32_ms.lib)等到ibase.pro项目文件夹下 configure -platform win32-msvc2 ...

  6. Qt入门(9)——Qt中的线程支持

    Qt对线程提供了支持,基本形式有独立于平台的线程类.线程安全方式的事件传递和一个全局Qt库互斥量允许你可以从不同的线程调用Qt方法.警告:所有的GUI类(比如,QWidget和它的子类),操作系统核心 ...

  7. 在QT中使用Irrlicht引擎的方法与步骤

      Ø 相关库,插件安装部分 本篇文档介绍在Qt5.2.0下面使用lrrlicht引擎在Qt窗口中输出(开发环境:vs2012) 1. 首先安装好Qt5.2.0,下载地址: http://downlo ...

  8. QT中共享库的生成与使用

    一. 静态库的生成1. 测试目录: lib2. 源码文件名: mywindow.h, mywindow.cpp, 类MyWindow继承于QPushButton, 并将文字设置为"I'm i ...

  9. QT中静态库的生成与使用——创建共享库代码,附例子

    一. 静态库的生成    1. 测试目录: lib    2. 源码文件名: mywindow.h, mywindow.cpp, 类MyWindow继承于QPushButton, 并将文字设置为&qu ...

随机推荐

  1. html css的简单学习(三)

    html css的简单学习(三) 前端开发工具:Dreamweaver.Hbuilder.WebStorm.Sublime.PhpStorm...=========================== ...

  2. .net压缩图片质量(附demo)

    private void CompressedImage(string fileName, long quality) { FileStream fs = new FileStream(fileNam ...

  3. poj 3308(二分图的点权最小覆盖)

    Paratroopers Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 8325   Accepted: 2502 Desc ...

  4. WEB学习-CSS清除浮动

    浮动的清除 来看一个实验:现在有两个div,div身上没有任何属性.每个div中都有li,这些li都是浮动的. <div> <ul> <li>HTML</li ...

  5. 如何快速定位TempDB产生问题

    步骤1.TempDB压力诊断 等待类型诊断 TempDB的争用压力在等待篇中已经简单介绍,等待的表现为 pagelatch_类等待,等待的资源是 “2: X :X ” tempDB所在磁盘的响应时间 ...

  6. BZOJ——1601: [Usaco2008 Oct]灌水

    http://www.lydsy.com/JudgeOnline/problem.php?id=1601 Time Limit: 5 Sec  Memory Limit: 162 MBSubmit:  ...

  7. cef 下载地址

    最新的CEF3源代码在:http://cefbuilds.com/CEF3的论坛:http://www.magpcss.org/ceforum/viewforum.php?f=5CEF3 C++开发环 ...

  8. Java创建和解析Json数据方法(二)——org.json包的使用

    (二)org.json包的使用 1.简介   工具包org.json.jar,是一个轻量级的,JAVA下的json构造和解析工具包,它还包含JSON与XML, HTTP headers, Cookie ...

  9. openfire Android学习(三)----会议室创建、加入以及查询会议室中所有成员等

    openfire 中的会议室不像QQ群一样,不能保存那些离线用户,加入会议室后,一旦断开连接,就会离开会议室. 虽然如此,但如果要实现也不是不可能,我们可以自己做后台来保存,有兴趣的可以去试着实现一下 ...

  10. ssh登录时不校验被登录机器的方法

    在linux的用户目录下的.ssh文件下,touch config:注意config的权限控制,-rw-r--r--. 配置内容: cat config: Host * StrictHostKeyCh ...