由于自己C++基础薄弱,导致这一系列的Bug改了好久好久。。。。记录一部分,我还记得的
编译通过镇一下哈哈
- error LNK2001: 无法解析的外部符号 "__declspec(dllimport) const XXX::vftable"
- 无法定义 dllimport 实体
这两个都是由于宏定义引起的。我的工程中是这样定义的
#ifdef EXPORTSS #define COMMON_EXPORTS __declspec(dllexport) #else #define COMMON_EXPORTS __declspec(dllimport) #endif
直接说最终的结果,在几经百度后知道__declspec(dllimport)与__declspec(dllexport)是用来在引用hpp文件的时候就可以使用对应cpp文件功能的。
百度解释:
__declspec(dllexport):导出符号,定义需要导出函数的dll中给导出函数的函数声明前面加上导出符号,表示该方法可以导出给其他DLL或者exe使用
__declspec(dllimport):导入符号,在使用该函数的DLL或者exe中需要在该函数的函数声明前面加上该符号,表示该函数方法是从其他库导入的
按照这个思路,定义完成后就该使用了。
使用:
class COMMON_EXPORTS CSetting
{
public:
........
}
这样是直接抛出异常了,原因是在hpp中定义了宏之后并没有在cpp文件中定义
在最开始添加#define EXPORTSS 就可以了。



