Problème de conversion

IH2MCBETA Messages postés 16 Date d'inscription jeudi 1 mars 2007 Statut Membre Dernière intervention 4 mai 2007 - 25 avril 2007 à 20:16
IH2MCBETA Messages postés 16 Date d'inscription jeudi 1 mars 2007 Statut Membre Dernière intervention 4 mai 2007 - 25 avril 2007 à 20:32
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

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
25 avril 2007 à 20:28
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");
0
IH2MCBETA Messages postés 16 Date d'inscription jeudi 1 mars 2007 Statut Membre Dernière intervention 4 mai 2007
25 avril 2007 à 20:32
C'est bon j'ai résolu le pb

tmp.Format(L"%d",j);     !!!!!!!!!!!!!!!!!!!
et oui !!!
0
Rejoignez-nous