我在使用CString时遇到一个链接器错误,错误是:
error LNK2001: unresolved external symbol "private: static class ATL::CStringT<wchar_t,class StrTraitMFC<wchar_t,class ATL::ChTraitsCRT<wchar_t> > > CConfiguration::_campaignFolderPath" (?_campaignFolderPath@CConfiguration@@0V?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@A)我有一个定义为:
class CConfiguration
{
private:
static CString _campaignFolderPath;
public:
static void Read();
private:
CConfiguration(void);
~CConfiguration(void);
};其读取方法定义为:
void CConfiguration::Read()
{
CConfigFile configReader(_T("Config.ini"));
TCHAR temp[1024];
configReader.GetStringValue(_T("Campaigns"), _T("CampaignsFolderPath"), temp);
_campaignFolderPath = temp;
}关于导致错误的原因,有什么线索吗?我正在使用Visual Studio 2008
发布于 2009-10-02 14:54:33
您需要实例化字符串,现在只需将其声明为静态。添加:
CString CConfiguration::_campaignFolderPath;在实现文件中。
发布于 2009-10-02 14:56:14
你有像下面这样的实现行吗?
CString CConfiguration::_campaignFolderPath;
https://stackoverflow.com/questions/1510010
复制相似问题