2009-10-02 11 views
3

Je reçois une erreur de liaison en utilisant CString l'erreur est:erreur Lien 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) 

J'ai une classe qui est définie comme:

class CConfiguration 
{ 
private: 
    static CString _campaignFolderPath; 

public: 
    static void Read(); 

private: 
    CConfiguration(void); 
    ~CConfiguration(void); 
}; 

Sa méthode Read est définie comme:

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

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

    _campaignFolderPath = temp; 
} 

Des indices quant à la cause de l'erreur? J'utilise Visual Studio 2008

Répondre

7

Vous devez instancier la chaîne, vous le déclarez simplement statique maintenant. Ajouter:

CString CConfiguration::_campaignFolderPath; 

dans le fichier d'implémentation.

+0

erreur C2039: 'CString': n'est pas membre de 'CConfiguration' – akif

+0

CString CConfiguration :: _ campaignFolderPath; merci – akif

+0

modifiez votre réponse s'il vous plaît, je crois que c'est une faute de frappe – akif

3

Avez-vous une ligne d'implémentation comme celle-ci quelque part?

CString CConfiguration :: _ campaignFolderPath;