因工作需要,项目需求(要编写一个营销软件,其中一个功能是控制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, "错误", "大漠插件初始化失败,请先注册"); }
原文地址:https://www.cnblogs.com/buyishi/p/10230405.html