链接错误CString

时间:2009-10-02 14:51:54

标签: c++ mfc linker cstring

我使用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);
};

其Read方法定义为:

void CConfiguration::Read()
{
    CConfigFile configReader(_T("Config.ini"));
    TCHAR temp[1024];

    configReader.GetStringValue(_T("Campaigns"), _T("CampaignsFolderPath"), temp);

    _campaignFolderPath = temp;
}

有关导致错误的原因的任何线索?我正在使用Visual Studio 2008

2 个答案:

答案 0 :(得分:7)

你需要实例化字符串,你现在只是声明它是静态的。添加:

CString CConfiguration::_campaignFolderPath;

在实施文件中。

答案 1 :(得分:3)

您是否在某处拥有如下所示的实施线?

CString CConfiguration :: _ campaignFolderPath;