QT 调用外部dll库的方式 -- 隐式调用
1.用vs (我使用的是vs2013)编写一个dll库
calculator.c ----------------------------------------------------- #include "calculator.h" int add(int x, int y) { return x + y; } calculator.h ------------------------------------------- #pragma once #include <stdio.h> #include <stdint.h> extern "C" { __declspec(dllexport) int add(int x, int y); }
注意我的QT版本是64位,所以使用vs编译的时候也应该是64位的
2.随便新建一个QT工程。
把dll文件和lib文件放入一个特定的位置
我这里新建了一个libbb文件夹,把dll文件 lib文件 .h文件都放入这个文件夹中
在qt工程文件pro中添加:
-l后面加上链接的名字,不需要加上lib后缀
包含 .h文件就可以使用
这里注意!!!!!!!!!!!!!!!!!!!!!!
拷贝过来的.h需要做一些修改
把上面的 dllexport 修改成 dllimport 这边导出 那边导入
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
在pro 文件中还可以直接右键,选择添加库,选择外部库
浏览选择lib库所在的位置,点击下一步就好
不知道为啥 最后面的 -lcalculator 变成了 -lcalculatord 末尾多了一个 d 这是编不过去的,需要删掉最后一个d 也可以使用