急求:QT如何调用外部DLL中的类中的函数?

woshigaowei5146 2019-08-13 06:41:53
我现在只有一个外部dll文件**Protocol.dll**,想用QT调用里面的函数,没有.h和.lib。
在网上找了许多方法都不行。

厂家只给了一个**C#**的例程,程序如下:

Protocol.Ax1485 ax1485 = new Protocol.Ax1485();
ax1485.OpenPort()
其中**Ax1485**是一个类,**OpenPort()**是该类中的一个函数,我现在想用QT调用这个函数。我现在是这么做的:

typedef int (*Fun)();
QLibrary testLib("Protocol.dll"); //已经把dll放在debug中
if (testLib.load())
{
Fun getObj = (Fun)testLib.resolve("OpenPort");
if (getObj)
{qDebug()<<"getObj";}
else
{QMessageBox::about(NULL,"result","resolve unSuccessfully");}
}

load()成功,但是**resolve()**函数总是不成功,不知道为什么?有没有懂的,急求!!!
...全文
197 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
woshigaowei5146 2019-08-15
  • 打赏
  • 举报
回复
现在弄好了,重新装了MinGW编译器版的QT,而且从64位换成了32位。
gouyanfen 2019-08-13
  • 打赏
  • 举报
回复
没有导出函数,你resolve肯定不会成功了,你需要先看看这个dll是什么写的,.net写的这样调用是不行的,得先确定库是在QT下可用的。 C#写的库MFC调用都有问题的

65,187

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧