• 4872阅读
  • 6回复

[提问]请教各位达人一个有关QT连接第三方DLL的问题 [复制链接]

上一主题 下一主题
离线ffii4455
 

只看楼主 倒序阅读 楼主  发表于: 2012-02-12
打算用QT写一个阅卷程序,答题卡阅读机的厂商已经提供了DLL文件,里面有操作阅卷机的API函数。同时,也有LIB文件和头文件。但是,头文件中有部分函数的参数类型是 LPCTSTR、BYTE这样在VC下使用的数据类型。然后,我就想请教有经验的人士几个问题1、参数类型为 LPCTSTR、BYTE这样的函数,能否通过一些手段被QT所使用。2、QT在工程文件中连接LIB的时候,路径可否使用相对路径?(我看到网上给的例子上面全部使用的是绝对路径)谢谢大家了。

另外,头文件中的函数还是用了__declspec(dllexport)和__stdcall这两个关键字
例如 __declspec(dllexport) long __stdcall OMR_GetDeviceList (char *lpszBuffer);
这是什么意思啊?
离线ffii4455

只看该作者 1楼 发表于: 2012-02-12
自己顶啊,显式调用已经成功了,现就就是求隐式调用的方法啊。
离线hats

只看该作者 2楼 发表于: 2012-02-16
以前我用的一个短信猫也是提供的MFC的DLL,函数参数是CString。
我用VC6又把这些api包装了一下,新开发个DLL,导出的新函数参数采用char* ,这样就解决了。
VC2005 + Qt 4.7.0
VC6 + Qt 4.5.0
WIndows XP
Mac OS X 10.6.8
CentOS6.2
离线ffii4455

只看该作者 3楼 发表于: 2012-02-18
回 2楼(hats) 的帖子
那请问你的DLL头文件试怎么写的,我现在已经知道了DLL里面的函数的具体参数类型和返回值类型。
离线roywillow

只看该作者 4楼 发表于: 2012-02-18
不知道QLibrary这个类对你有帮助吗?
如果是mingw的话,需要的不只是.h和.dll,还得需要.a吧,链接的时候用
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
离线ffii4455

只看该作者 5楼 发表于: 2012-02-18
回 4楼(roywillow) 的帖子
QLibrary不就是做显示调用的吗?
我的显示调用就用的QLibrary来完成的,结果没有问题。
但是隐式调用mingw可以使用LIB,LIB文件我也有。
当初在用windows的winmm.dll的时候就用过LIB,也没问题。
现在好像就是H文件有问题,因为这个H文件是给VC用的。。。
我现在也知道DLL中函数原型,想问一下怎么写QT用的H文件。我这里老显示连接错误。。。
QT对LIB文件有要求吗?需要专用的LIB文件吗?
离线roywillow

只看该作者 6楼 发表于: 2012-02-19
呃……其实我根本就不知道什么是显式什么是隐式调用……
链接错误的话贴出来错误的信息看看如何?
专业维修核潜艇,回收二手航母、二手航天飞机,大修核反应堆,拆洗导弹发动机更换机油,无人侦察机手动挡改自动,航天飞机保养换三滤,飞碟外太空年检 ,各型号导弹加装迎宾踏板,高空作业擦洗卫星表面除尘、打蜡及抛光,东风全系列巡航导弹。并提供原子对撞机。量大从优,有正规发票。
快速回复
限100 字节
 
上一个 下一个