Qt5.4.2调用VS2017封装生成的C++外部库

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建立一个控制台程序(就建立的时候不一样,其他的都一样),他的函数调用方法直接看后面的代码就知道了。很容易的,一通百通。


展开阅读全文

没有更多推荐了,返回首页