4

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 を使用しています

4

2 に答える 2

8

文字列をインスタンス化する必要があります。今は静的として宣言しているだけです。追加:

CString CConfiguration::_campaignFolderPath;

実装ファイルで。

于 2009-10-02T14:54:33.100 に答える
3

以下のような実装行はどこかにありませんか?

CString CConfiguration::_campaignFolderPath;

于 2009-10-02T14:56:14.450 に答える