2009-10-02 1 views
3

Я получаю сообщение об ошибке компоновщика с помощью 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" ([email protected]@@[email protected][email protected][email protected][email protected]@@@@@[email protected]@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

ответ

7

Вам нужно создать экземпляр строки, вы просто объявляете ее статичной. Add:

CString CConfiguration::_campaignFolderPath; 

в файле реализации.

+0

Ошибка C2039: 'CString': не является членом 'CConfiguration' – akif

+0

CString CConfiguration :: _ campaignFolderPath; спасибо – akif

+0

действительно отредактируйте свой ответ, пожалуйста, я считаю, что его опечатка – akif

3

Есть ли у вас линия реализации, например, следующее?

CString CConfiguration :: _ campaignFolderPath;