Ошибка ссылки CString - PullRequest
       29

Ошибка ссылки CString

3 голосов
/ 02 октября 2009

Я получаю ошибку компоновщика, используя 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

Ответы [ 2 ]

7 голосов
/ 02 октября 2009

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

CString CConfiguration::_campaignFolderPath;

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

3 голосов
/ 02 октября 2009

У вас есть строка реализации, подобная следующей?

CString CConfiguration :: _ campaignFolderPath;

...