因工作需要,項目需求(要編寫一個營銷軟件,其中一個功能是控制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, "錯誤", "大漠插件初始化失敗,請先注冊"); }