我正在玩 Visual Studio,但发现了一个我无法理解的错误。我创建了一个导出类的 DLL;如果我创建另一个 DLL 项目并尝试使用第一个 DLL 类作为成员变量,则它不起作用,具体取决于我如何声明它。
这是第一个 DLL 类:
class LOCKING_API CCriticalSection {
public:
CCriticalSection(void);
~CCriticalSection(void);
void Enter(void);
void Leave(void);
BOOL TryEnter(void);
private:
CRITICAL_SECTION CriticalSection;
};
在第二个 DLL 中:
#include "../Locking/Locking.h"
class APPLICATION_API CApplication {
public:
static CApplication* instance(void);
private:
CApplication(void);
static CApplication* pInstance;
static CCriticalSection CritSect;
};
如果我尝试编译我会得到错误:
Application.obj : error LNK2001: unresolved external symbol "private: static class CCriticalSection CApplication::CritSect" (?CritSect@CApplication@@0VCCriticalSection@@A)