最近在调用卡尔的库函数时候,发现他们仅仅提供了一个dll,于是百度调研QT动态加载dll的方式,在调用成功后分析给大家。 动态调用。在使用的时候才会加载dll进来,使用QT本身自己的加载机制,利用QLibrary进行动态加载。 typedef void (*CB_AnswerData)(const char *pBuf,int iLen); void cardInfoCallback(const char *pBuf,int iLen) void MainWindow::on_pushButton_3_clicked() if(lib.load()) qDebug() << “load DLL succeed”; //usb回调 } 注意事项: (1)dll中的函数我们在调用过程中,需要在调用类中重新写一个带有形参个数和类型都一样的函数,就像本文的FunCardcallback,它在这里是作为回调函数使用的。 (2)包含头文件#include “QLibrary”。 (3)把调用的dll放在exe所在路径中。 (4)一个小工具用于查看dll的函数原型,Stud_PE.exe。这个可以查看dll的导出表。
typedef int (*FunCardcallback)(CB_AnswerData );
{
}
{
if(true)
{
QLibrary lib(“KeUsbHid.dll”);
{
try
{
FunUSBcallback usbBack=(FunUSBcallback)lib.resolve(“_KERECEIVER_SetUSBStatusCallBack@4”);
}
catch (…)
{
qDebug() << “usb catch———————catch”;
}
}
else
{
}
}
本网页所有视频内容由 imoviebox边看边下-网页视频下载, iurlBox网页地址收藏管理器 下载并得到。
ImovieBox网页视频下载器 下载地址: ImovieBox网页视频下载器-最新版本下载
本文章由: imapbox邮箱云存储,邮箱网盘,ImageBox 图片批量下载器,网页图片批量下载专家,网页图片批量下载器,获取到文章图片,imoviebox网页视频批量下载器,下载视频内容,为您提供.
阅读和此文章类似的: 全球云计算