Erreur de link

Fermé
Olive - 2 juin 2008 à 17:02
 Olive - 6 juin 2008 à 10:11
Bonjour,

je code une p'tite appli en MFC, jusque là, rien de fantasmgorique, je suis sous visual studio 2005, biblio statique (appli qui doit fonctionner d'elle même "n'importe où"), que dire encore...

J'essaie de lire un fichier txt selon:
CString LectureLigne ()
{
	CFile MonFichier  ((LPCTSTR)"C:\\Documents and Settings\\MonLogin\\My Documents\\Visual Studio 2005\\Projects\\Portail\\Information.txt",CFile::modeRead | CFile::typeBinary);
	CString MaChaineRetour;

	ULONGLONG MaTaille = MonFichier.GetLength();
	char *MonBuffer = new char[(int)MaTaille+1];
	UINT NbOctetLu = MonFichier.Read(MonBuffer, (int)MaTaille);
	MaChaineRetour = MonBuffer;
	MonFichier.Close();
	delete MonBuffer;
	return MaChaineRetour;
}


et dans la "zone de ma fenetre", pour l'évenement "onclick":
void CPortailDlg::OnBnClickedButtonMaj()
{
	// TODO : ajoutez ici le code de votre gestionnaire de notification de contrôle
	MaComboSite.ResetContent ();
	MaComboDomaine.ResetContent ();
	CString MonTest, MonReTest;

	MonTest = CCommandPortail ::LectureLigne ();
	MonReTest = MonTest;
}


avec un point d'arret sur "MonReTest = MonTest" pour savoir si la chaine est bien renvoyée.

et à la génération, j'ai "ça":

Erreur 1 error LNK2001: symbole externe non résolu "public: static class ATL::CStringT<wchar_t,class StrTraitMFC<wchar_t,class ATL::ChTraitsCRT<wchar_t> > > __cdecl CCommandPortail::LectureLigne(void)" (?LectureLigne@CCommandPortail@@SA?AV?$CStringT@_WV?$StrTraitMFC@_WV?$ChTraitsCRT@_W@ATL@@@@@ATL@@XZ) PortailDlg.obj


et j'ai ça aussi:
Erreur 2 fatal error LNK1120: 1 externes non résolus C:\Documents and Settings\fr58601\My Documents\Visual Studio 2005\Projects\Portail\Debug\Portail.exe 1

Je me rends bien compte que c'est un problème de transformation de chaine de caractère (CStringT, wchar_t, StrTraitMFC... etc etc, ça ne trompe pas je pense) mais je ne comprend pas où se situe mon problème...

Comme je ne suis pas un programmeur chevronné et là, je nage...

Si quelqu'un avait la possibilité de m'éclairer, je lui en serait reconnaissant.

Cordialement,

Olive

3 réponses

Sri Lumpa Messages postés 177 Date d'inscription mercredi 14 novembre 2007 Statut Membre Dernière intervention 1 juin 2010 69
3 juin 2008 à 07:36
"Symbole externe non résolu", ce n'est pas parce qu'il manque un include quelque part ?
0
Merci Sri

Je coyais avoir résolu le problème grace à ça:
https://support.microsoft.com/en-us/help/309801

où il préconise de mettre ceci dans le stdafx.h:
template class __declspec(dllimport) CStringT<TCHAR, StrTraitMFC<TCHAR, ChTraitsCRT<TCHAR> > >;
template class __declspec(dllimport) CSimpleStringT<TCHAR>;


Mais, même ça, ça ne fonctionne pas pour le moment...
Je continue à chercher...
0
Est-il possible d'être si bêêêêête ??

CString CCommandPortail:: LectureLigne ()


au lieu de
CString LectureLigne()


a résolu le problème... j'ai honte... Excusez moi pour le dérangement...
0