dll qt 相对路径_QT创建与调用Dll方法(包括类成员)--显式调用

看网上的好多关于QT调用Dll的方法,大部分都是调用函数的,并没有调用C++类成员的情况,即使是有,比如说:

​我就是按照这上面的教程一步步做的,可惜了都没成功~~~这里面都有一个最重要的步骤没有说清楚(可能怪我笨~~),路径问题!!!

所以这里自我做一下总结:

创建时选择C++ Library就可以了,然后选择Shared Library(共享库),其他默认OK。

5fa275fa5e28ad9ef5d2aac3498605d1.png

d604e0bf808071dead7886b1478bb640.png

创建好后文件如下(我这里工程名为:dll)

b6f6af05d3a680bff7d4d2ec8dc96876.png

其中dll.pro代码为:

dll_global.h代码为:

dll.h代码为:

dll.cpp代码为:

运行后在生成目录里生成了dll.dll、libdll.a、dll.o三个文件(Windows下使用MinGW编译运行),如图:

e22a82417530916c7cdd511fba6156dd.png

其中,.dll是在Windows下使用的,.o是在Linux/Unix下使用的。新建一个调用项目”DllTest“:

ae60046bae8a026941d27b13adf3b53c.png

将dll.h和dll_global.h两个文件放到代码目录中:

8c35f448e0cac4c1e58c629ec3596ec8.png

其中DllTest.pro代码如下:

如果路径中有空格存在,一定要把整个路径放到一对双引号里!

这里网友评论里提出了更为规范的写法,更规范的写法如下:(非常感谢博友:多多多多多!!!)

main.cpp代码:

这里将dll.dll文件放到调用项目的生成目录下(Debug上面一层)(这里对应上面的相对路径)即DllTest-Debug(我这里是这个名字,你那里可能不同)目录下:

430568031b90fc7a9b468cd7a2e8f177.png

0f93cdfd415074a8692c2d480bc38f7e.png

编译,运行,OK!

这里要特别注意dll.dll的存放位置,还有要在.pro文件中增加一个 LIBS += dll.dll 用来指示路径,也可使用绝对路径如先将dll.dll放到D:/API/下,则应该设置为:LIBS += "D:/API/dll.dll"

如果想在资源管理器中直接双击exe文件打开,则dll.dll要放到和exe同目录下!

这个是显式调用的方法!

说明:下载的代码下载好后,要将LIBS += "D:/API/dll.dll" 更改成:LIBS += dll.dll 就可直接运行了。也可按规范写法:LIB += -LD:/API -ldll 或 LIBS+= -L.  -ldll (注意这里的“ . ”而且中间-L和路径之间不能有空格)建议代码下载后更改成相对路径的方式(项目DllTest.pro)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值