Problème de conversion

Signaler
Messages postés
16
Date d'inscription
jeudi 1 mars 2007
Statut
Membre
Dernière intervention
4 mai 2007
-
Messages postés
16
Date d'inscription
jeudi 1 mars 2007
Statut
Membre
Dernière intervention
4 mai 2007
-
Bonjour ,
voila une erreur que je n'arrive pas résoudre

code:
void

CPage1::OnEnKillfocusNbrun()
{

this->UpdateData();

m_norunDlg.ResetContent();

int nIndex;
CString tmp;

int j;

for (
int i=0;i < m_nbrunDlg ;i++)
{

j=i+1;
tmp.Format(
"%d",j);
tmp=
"toto";
nIndex=m_norunDlg.AddString(tmp);
}

avec m_norundlg = variable d'une combobox
m_nbrunDlg = variable de l'edit (OnEnKillfocusNbrun() est son gestionnaire d'évenement

et voila l'erreur :
error C2664: 'void ATL::CStringT::Format(const wchar_t *,...)' : impossible de convertir le paramètre 1 de 'const char [3]' en 'const wchar_t *'
1> with
1> [
1> BaseType=wchar_t,
1> StringTraits=StrTraitMFC_DLL<wchar_t>
1> ]
1> Les types pointés n'ont aucun rapport entre eux ; conversion nécessitant reinterpret_cast, cast de style C ou cast de style fonction

Si vous avez des suggestions , n'hésiter pas ...
Merci

2 réponses

Messages postés
1905
Date d'inscription
mercredi 22 janvier 2003
Statut
Membre
Dernière intervention
17 septembre 2012
2
Salut,

Tu dois compiler en unicode, donc CString est un typedef de CStringW, autrement dit une chaine unicode.

Faudrait entourer les chaines que tu utilises par les macros _T() ou TEXT()

tmp.Format(_T("%d"), j);

tmp = _T("toto");
Messages postés
16
Date d'inscription
jeudi 1 mars 2007
Statut
Membre
Dernière intervention
4 mai 2007

C'est bon j'ai résolu le pb

tmp.Format(L"%d",j);     !!!!!!!!!!!!!!!!!!!
et oui !!!