C++导出类,动态库需要__declspec(dllexport),静态库不需要
2014-09-04 16:13
399 查看
谢谢coderguang的指正,原来问题出在__declspec(dllexport)修饰符上。
对于动态库dll要导出类,此修饰符是必要的,但对于静态库,则不需要此修饰符,应用工程使用的头文件也不需要__declspec(dllimport)修饰符。又做了测试工程,静态库导出类顺利通过编译,使用也没问题。再次感谢coderguang!
======================================================================================================================
C++编写dll导出类,必须编译成动态库,不能编译成静态库,否则该库导出类定义的函数被别的程序使用时,程序编译链接时会报“无法解析的外部符号”错误!
对于动态库dll要导出类,此修饰符是必要的,但对于静态库,则不需要此修饰符,应用工程使用的头文件也不需要__declspec(dllimport)修饰符。又做了测试工程,静态库导出类顺利通过编译,使用也没问题。再次感谢coderguang!
======================================================================================================================
C++编写dll导出类,必须编译成动态库,不能编译成静态库,否则该库导出类定义的函数被别的程序使用时,程序编译链接时会报“无法解析的外部符号”错误!
相关文章推荐
- __declspec(dllimport)和__declspec(dllexport)的区别,以及有关c/c++调用约定
- 动态库导出声明 : extern "C" __declspec(dllexport) 与 __declspec(dllexport)
- C++静态库中使用_declspec(dllexport) 不能导出函数的问题
- (转)__declspec(dllimport)和__declspec(dllexport)的区别,以及有关c/c++调用约定
- __declspec(dllimport)和__declspec(dllexport)的区别,以及有关c/c++调用约定
- __declspec(dllimport)和__declspec(dllexport)的区别,以及有关c/c++调用约定
- [C/C++] __declspec(dllexport):从DLL导出
- __declspec(dllimport)和__declspec(dllexport)的区别,以及有关c/c++调用约定
- __declspec(dllimport)和__declspec(dllexport)的区别,以及有关c/c++调用约定
- __declspec(dllimport)和__declspec(dllexport)的区别,以及有关c/c++调用约定
- C++ DLL __declspec(dllexport) & __declspec(dllimport) 解析
- __declspec(dllimport)和__declspec(dllexport)的区别,以及有关c/c++调用约定
- _declspec(dllexport) 用于DLL中导出函数 和 导出类
- C与C++对__declspec(dllimport)和__declspec(dllexport)标志符号不同处理
- C++中动态库(.dll)和静态库(.lib)
- C/C++ 关于生成静态库(lib)/动态库(dll)文件如何使用(基于windows基础篇)
- 动态库认识之一: __declspec(dllexport)与.def文件
- __declspec(dllimport)和__declspec(dllexport)的区别,以及有关c/c++调用约定
- (转)__declspec(dllimport)和__declspec(dllexport)的区别,以及有关c/c++调用约定
- dll添加.def文件与直接在需要导出的函数定义处指定_declspec( dllexport )有区别吗?