DLL 库:
// export.h
#if defined(COMMON_EXPORT)
#define COMMON_DLL __declspec(dllexport)
#else
#define COMMON_DLL __declspec(dllimport)
#endif
// foo.h
class COMMON_DLL Foo
{
int foo() { return 1; }
}
如果我尝试从其他库调用此代码,则会发生链接器错误。如果从 foo.h 中删除 COMMON_DLL 或将 foo() 方法的实现移动到 .cpp 文件,那么一切正常。为什么会这样?