这两天在搞USB的东西,实现pc机与单片机的数据传输,但qt下没有 usb的类,所以只好调用CH375的API函数,文件(ch375.dll,ch375.lib,ch375.h),
也查了不少资料,但都说的很模糊,今天终于在qt下成功的调用了API函数,把步骤贴出来,希望给大家点帮助,有不对的还望大家指教,
这个是我的第一个帖子,呵呵,以后会继续分享~~~
第一步:新建QT4 GUI Application工程,工程名为usbtest,我的路径名为E:/qtwork/usbtest
第二步:把下载的ch375.dll和ch375.lib文件拷贝到E:/qtwork/usbtest/debug目录下,ch375.H的拷贝到E:/qtwork/usbtest下
第三步:在ch375.h的文件中包含头文件 #include "qt_windows.h" //重要
第四步:在MainWindow.CPP中包含头文件 #include “ch375.h”和#include <QLibrary>
第五步:在usbtest.pro文件中加入 LIBS += -LE:/qtwork/usbtest/debug/ -lch375
基本完成,现在就可以实现函数的调用了,我用的是显式的方式调用API函数的,
在MainWindow.CPP加入以下函数:
MainWindow::MainWindow(QWidget *parent) :
QMainWindow(parent),
ui(new Ui::MainWindow)
{
ui->setupUi(this);
QLibrary lib("E:/qtwork/usbtest/debug/CH375.DLL"); //加载DLL文件
if(lib.load()) //如果加载成功
{
typedef HANDLE(*OpenDevice)(ULONG iIndex); //显示调用CH375中的函数
OpenDevice open=(OpenDevice)lib.resolve("CH375OpenDevice");
HANDLE u = open(1);
qDebug()<<u;
qDebug()<<"CH375.DLL LOAD SUCCESS!";
}
else
qDebug()<<"CH375.DLL LOAD UNSUCCESS!";
}
编译运行后就可以先到如下的调试信息:
E:\qtwork\usb\debug\usb.exe exited with code 0
Starting E:\qtwork\usb\debug\usb.exe...
0xffffffff
CH375.DLL LOAD SUCCESS!