Qt5.4.2widget App程序调用VS2017封装生成的C++外部库源码链接:https://download.csdn.net/download/wise18146705004/10540428
Qt5.4.2控制台程序调用VS2017封装生成的C++外部库源码链接:https://download.csdn.net/download/wise18146705004/10540457
1,生成.h头文件和 .dll, .lib库
在vs2010中新建工程,在向导中选择DLL,如下图所示:
新建两个文件mydll.h和mydll.cpp
mydll.h代码如下:
#ifndef MYDLL_H
#define MYDLL_H
#ifdef __cplusplus
extern "C" {
#endif
__declspec(dllexport) int myFun(int a, int b);
#ifdef __cplusplus
}
#endif
#endif // !MYDLL_H
mydll.cpp代码如下:
#include "mydll.h" #include <stdio.h> int myFun(int a, int b) { printf("myFun is called"); return a + b; }
编译运行,在Debug目录下可看到下述文件:
2.在Qt中调用dll和lib库
新建Qt工程LibTest2,将mydll.h文件添加到当前工程的文件夹中,将mydll.lib和mydll.dll文件复制到当前工程文件夹所在目录中;
在LibTest2上右键-添加库-导入外部库-从文件夹中选中.lib文件,参数选项如下图所示:
在mainwindow.cpp中包含“mydll.h”,如:
在构造函数中添加下述代码:
int test; test = myFun(45,45); qDebug()<<test;
编译运行,结果如下:
可以看到C静态库已被调用。
高级一点的方法
控制台应用跟这个差不多,前面vs2017封装代码照着hellowold里面看就是了,写法很简单,一个函数在.h里面用一个引出声明一个,在.cpp里面用一个定义。两个就分别写两个就行了,格式都一样的。照着做就行了,然后qt建立一个控制台程序(就建立的时候不一样,其他的都一样),他的函数调用方法直接看后面的代码就知道了。很容易的,一通百通。