如何在Visual studio中创建C++的静态链接库(.lib文件)并使用,点击可查看
如何在Qt中使用静态库.lib(和VS一样,仅仅是操作方式略有差异)
如何在Qt和VS中使用动态链接库.dll文件----以隐式链接的方式
如何在VS和Qt中使用动态链接库.dll—以显式链接的方式
本篇文章讲如何在VS中创建dll
VS中创建.dll动态链接库
-
正确做法:使用
__declspec(dllexport)
进行导出dll函数,编译构建后生成2个文件,一个是.lib
,一个是.dll
。再结合.h头文件
对应了dll隐式链接调用的三件套:.lib
文件、.dll文件
、.h头文件
- 其中
.lib文件
虽然也是以.lib结尾,但与上面提到的静态链接库还是有很大差别的。 - 这个文件只是包含了相应的dll的接口说明,并不包含实际的代码
- 其中
-
错误做法:如果不使用
__declspec(dllexport)
而直接编译构建dll库,仅生成.dll文件
,不生成.lib文件
,这是错误的导出方式,将导致.dll
无法使用
生成方式:
注意:在创建动态链接库时,extern "C"
主要是为了适配QLibrary中中,如果用C++编译器编译C代码时的情况
- 很多时候,去掉也可以
后记: 前端时间,我用VS生成一个动态链接库,然后计划给Qt使用;在VS生成库的过程中,我使用__declspec(dllexport)
导出了一个类,并把整个类都放进了一个自定义的命名空间中;最后在Qt中使用时,就一直出现BUG,最后把命名空间去掉,才排除了错误!