不同版本的vs编译的dll在导出类的时候不能相互调用,直接导出函数是可以的,但有的也存在问题。
例如,Qt Msvc2019编译的dll和lib给msvc201不能调用,因为lib文件不同,需要重新生成lib,或者更改加载dll的方式,即不用lib加载。
以下是利用dll生成lib的方法:
打开vs2017命令行:
第一步,更换目录 cd \DIR
第二步, 在该路径下新建def文件(新建txt,该后缀为def即可)
第三步,在def文件中输入以下:
LIBRARY fBodyImgprocessingLib
EXPORTS
fBodyImgShow
fBodyImgEnhance
fBodyImgObjDetect
其中fBodyImgprocessingLib为dll名,在当前目录下应有对应文件
EXPORTS下面的三个为导出函数的函数名
第四步,命令行输入:lib /def:test.def /machine:x64 /out:test.lib
其中test.def为def文件名,test.lib为生成的lib文件名,应该把test.lib该为fBodyImgprocessingLib.lib
即可