网站建设的构思,网站开发工资高吗,wordpress模板堂,交流做病理切片的网站VS2019端#xff1a;
a 基于生成一个DLL的工程#xff08;要注意生成是x86#xff0c;还是x64的#xff0c;需要和后面的QT的App工程对应#xff09;#xff0c;这里不多解释了#xff0c;网上多的是#xff1b;
b 在cpp实现文件里#xff0c;假如要导出一个这样的… VS2019端
a 基于生成一个DLL的工程要注意生成是x86还是x64的需要和后面的QT的App工程对应这里不多解释了网上多的是
b 在cpp实现文件里假如要导出一个这样的函数
int add(int a, int b)
{
return ab;
}
那么它对应的头文件如abc.h一定如下即在头文件里使用了extern C来限制这个函数名这样的目的是在c编译器下产生c语言的编译链接规则
#ifdef __cplusplus
extern C {
#endifint add(int a, int b);#ifdef __cplusplus
}
#endif
具体c和c语言编译链接规则extern C参考extern “C”的作用详解 - 狂奔~ - 博客园 (cnblogs.com)https://www.cnblogs.com/xiangtingshen/p/10980055.html
注意上述的cpp实现文件的函数名前不要加extern C。
c 为了产生lib文件在VS2019工程里添加def文件这样的目的是生成DLL后导出的函数名为add而不是乱七八糟的添加各种前缀还有一个目的是生成DLL的同时还会生成lib文件即如果不添加def文件默认是不会产生lib文件的。
LIBRARY
EXPORTSadd 1d 编译工程产生DLL后一定使用VS2019环境——【工具】——【VS命令提示】检查一下产生的dll是否符合预期要求
在弹出的控制台输入命令dumpbin /exports abc.DLL 如上图可以看到导出的函数名为add。
QT端
a 生成一个基于exe的App工程注意32位/64位一定和上面VS工程对应
b 在pro工程文件里添加上面VS2019生成的DLL工程引用
LIBS C:/abc/Debug/abc.lib
注意这里添加的是lib文件名测试引用DLL文件名也可以
c 引用上面VS产生的头文件abc.h在cpp里直接使用add函数即可。