要做得很短, 1.我在VC ++ 2010中构建DLL(动态) 我有两个我要导出的课程 a)A类是基类 b)继承A的B类 3.它们位于两个单独的文件ClassA.h和ClassB.h中。两个实现都在各自的cpp文件中,并且位于同一个项目中 4.我在两个头文件中都有以下符号
#ifdef COLLECTIONS_LIB
#define COLLECTIONS_LIB_EXPORT __declspec(dllexport)
#else
#define COLLECTIONS_LIB_EXPORT __declspec(dllimport)
#endif
namespace
CollectionsLib 现在每当我建立警告LNK4217
locally defined symbol ??ClassA@CollectionsLib@@QAE@XZ (public: __thiscall CollectionsLib::Class::~Class(void)) imported in function __unwindfunclet$??0ClassA@CollectionsLib@@QAE@V?$Point_@H@cv@@HHV?$Scalar_@N@3@HI@Z$0
我只是不明白为什么它会向我显示此错误。为什么是析构函数?
非常感谢任何指导。
答案 0 :(得分:2)
找到该析构函数的定义。可能你会在两个或更多的地方或在海滩上找到它。
当你有一个__declspec(dllimport)函数但是定义了非内联体,或者__declspec(dllexport)和multidefined时,会发出这个警告。