我有一个类Rules(),它有一个名为m_String的静态公共成员
我使用适当的CString在类中定义该成员
当我想从全局函数中使用该成员时,我使用“Rules :: m_String”
编译时我得到以下错误:
Rules.obj:错误LNK2001:未解析的外部符号“public:static class ATL :: CStringT>> Rules :: m_String”(?m_String @ Rules @@ 2V?$ CStringT @ DV?$ StrTraitMFC_DLL @ DV? $ ChTraitsCRT @ D @ ATL @@@@@ ATL @@ A)
也许这意味着规则中设置m_String的函数也应该是静态的?
答案 0 :(得分:4)
很可能您没有定义Rules::m_String
的实例(未声明)并在Rules.cpp
编译单元中初始化。
在任何函数定义之外的Rules.cpp
中,您是否有类似以下的行?
CString Rules::m_String = CString("Whatever initial value required");
如果没有显示更多代码,其他任何事情都很难说。