用qt调用c++的动态链接库

时间:2023-02-05 15:49:36
各位大虾,求帮助。
我现在有个项目,是用qt实现的界面,比如这个界面里有4个按钮,每一个按钮控制一个灯的开关,而灯的开关是用c++写的,那么我的qt程序如何实现与c++写的程序的互动呢?
我的一个学过c++的同学说大概是c++程序编译之后,会生成dll的动态链接库,我需要调用dll库,但是我怎么调用呢,qt程序中沟槽函数中的槽函数可不可以直接调用c++中的函数

3 个解决方案

#1


在QT中弄个类, 然后弄几个槽函数, 槽函数调用dll里的函数

#2


你提的这个问题够呛,你这不是qt的问题,而是C++的问题。你最好学下C++才可能听的懂别人的回答。
C++非常灵活,
一种最普通的调用dll的方式就是,加入dll对应的头文件,这样在你调用dll函数时,编译器才不会报错。编译器编译后,需要把dll文件放在PATH搜索目录下,或者exe文件目录下。这样就可以运行了。
二,如果没有头文件,你完全可以自己写申明,只不过实现部分在dll中而已。
以上都是在程序启动时,由操作系统将dll文件载入内存。如果你需要在程序运行时,按需载入,你可以使用QLibrary来加载。最值得注意的是C++的编译器,你使用的编译器必须和编译dll的编译器一致,否则无法调用。C语言就没有这个问题。 用qt调用c++的动态链接库说得很乱,你自己理解下吧。

#3


分显示调用和隐式调用,我经常用隐式调用win32的api,如Beep(dowrd,dword)这种函数,这篇文章就讲清楚了:http://www.cnblogs.com/hicjiajia/archive/2010/08/27/1810239.html

#1


在QT中弄个类, 然后弄几个槽函数, 槽函数调用dll里的函数

#2


你提的这个问题够呛,你这不是qt的问题,而是C++的问题。你最好学下C++才可能听的懂别人的回答。
C++非常灵活,
一种最普通的调用dll的方式就是,加入dll对应的头文件,这样在你调用dll函数时,编译器才不会报错。编译器编译后,需要把dll文件放在PATH搜索目录下,或者exe文件目录下。这样就可以运行了。
二,如果没有头文件,你完全可以自己写申明,只不过实现部分在dll中而已。
以上都是在程序启动时,由操作系统将dll文件载入内存。如果你需要在程序运行时,按需载入,你可以使用QLibrary来加载。最值得注意的是C++的编译器,你使用的编译器必须和编译dll的编译器一致,否则无法调用。C语言就没有这个问题。 用qt调用c++的动态链接库说得很乱,你自己理解下吧。

#3


分显示调用和隐式调用,我经常用隐式调用win32的api,如Beep(dowrd,dword)这种函数,这篇文章就讲清楚了:http://www.cnblogs.com/hicjiajia/archive/2010/08/27/1810239.html