Bonjour,
j'ai créé une fonction ds laquelle je veux passer un CEdit.
Quand je compile j'ai alors l'erreur suivante ;
inpossible de convertir le paramètre 3 de 'CEdit' en 'CEdit'
pourquoi ?
Merci
Version imprimable
Bonjour,
j'ai créé une fonction ds laquelle je veux passer un CEdit.
Quand je compile j'ai alors l'erreur suivante ;
inpossible de convertir le paramètre 3 de 'CEdit' en 'CEdit'
pourquoi ?
Merci
euh tu peux me montrer la ligne de l'erreur ?
parce qu'il y a une erreur quelque part. sans plus d'indication (pti bout de code, message d'erreur exact :wink:), peut pas grand chose.
vérifier la signature de tes fonctions, ce que tu leur passes en argument.
Dans DlgRegalges.cpp
fonction de mon probleme précédent :
appel de ma fonction :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 void CDlgReglages::ChangeEdit(CString Chaine,CString TempChaine,CEdit edit) { char *stopstring = "0"; UpdateData(true) ; strtod(Seuil_PenteTQ,&stopstring) ; if(stopstring[0] == '\0') { TempSeuil_PenteTQ = Seuil_PenteTQ ; } else { Seuil_PenteTQ = TempSeuil_PenteTQ ; UpdateData(false) ; edit.PostMessage(WM_KEYDOWN,VK_END,0); } }
dans DlgReglages.hCode:ChangeEdit(Seuil_PenteTQ,TempSeuil_PenteTQ,Edit13) ;
le prototype :
Code:afx_msg void ChangeEdit(CString Chaine,CString TempChaine,CEdit edit) ;
dit question idiote mais Edit13 c'est pas une variable memebre de ta classe ?
j'ai déclaré Edit13 dans DlgReglages.h : CEdit Edit13 ;
est ce que cette fonction va etre appelée avec plusieurs CEdit ou juste celui la ?
c'est quoi le message d'erreur exact !
avec plusieurs Edit justement c'est pour ca que je le passe en param.
Le message d'erreur :
d:\xxx\cximage599c_lite\demo3\DlgReglages.cpp(249): error C2664: 'CDlgReglages::ChangeEdit' : impossible de convertir le paramètre 3 de 'CEdit' en 'CEdit'
passe une référence ou un pointeur de CEdit.
Désolé mais j'ai du mal avec les pointeurs, comment je dois faire ?
alors, personne pour m'aider ?
est ce que tu as appris à faire du C++ ou du C ? les pointeurs sont la base de ces langages. Vas voir ici
Jai remplacé :
void CDlgReglages::ChangeEdit(CString Chaine,CString TempChaine,CEdit edit)
par :
void CDlgReglages::ChangeEdit(CString Chaine,CString TempChaine,CEdit *edit)
ChangeEdit(Seuil_PenteTQ,TempSeuil_PenteTQ,Edit13) ;
par :
ChangeEdit(Seuil_PenteTQ,TempSeuil_PenteTQ,*Edit13) ;
afx_msg void ChangeEdit(CString Chaine,CString TempChaine,CEdit edit) ;
par :
afx_msg void ChangeEdit(CString Chaine,CString TempChaine,CEdit *edit) ;
mais toujours la même erreur
supprime le afx_msg voir !
remplace :
parCode:ChangeEdit(Seuil_PenteTQ,TempSeuil_PenteTQ,*Edit13) ;
Code:ChangeEdit(Seuil_PenteTQ,TempSeuil_PenteTQ,&Edit13) ;
si je supprime le afx_msg, a la compilation il me dit que ma fonction n'est pas membre de la classe en question.
Sinon pour le changement de *Edit13 en &Edit13, il me dit :
d:\xxxx\cximage599c_lite\demo3\DlgReglages.cpp(249): error C2664: 'CDlgReglages::ChangeEdit' : impossible de convertir le paramètre 3 de 'CEdit ** ' en 'CEdit'
J'ai essayé, pas d'erreur à la compilation mais le code n'a aucun effet :
Appel de la méthode :Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18 void CDlgReglages::ChangeEdit(CString Chaine,CString TempChaine,CEdit *Edit) { char *stopstring = "0"; Edit->UpdateData(true) ; strtod(Chaine,&stopstring) ; if(stopstring[0] == '\0') { TempChaine = Chaine ; } else { Chaine = TempChaine ; Edit->UpdateData(false) ; Edit->PostMessage(WM_KEYDOWN,VK_END,0); } }
Si quelqu'un pouvait m'aider ca serait sympa....Code:
1
2 ChangeEdit(Seuil_PenteTQ, TempSeuil_PenteTQ, &Edit13) ;
Merci
Ecoute dans ta classe tu as
et tu gardes dans ta classeCode:
1
2 CEdit Edit13 ;
et tu appelles ta méthode comme çaCode:
1
2 void ChangeEdit(CString Chaine, CString TempChaine, CEdit *Edit);
Vérifie bien tes syntaxesCode:
1
2 ChangeEdit(Seuil_PenteTQ, TempSeuil_PenteTQ, &Edit13) ;
Gabrielly, j'ai fait ce que tu as dit (je vois pas la différence avec mon post qui précède le tien ). A la compilation tout ce passe bien mais ma méthode n'a aucun effet.
est ce que en debuggant tu arrives à ta fonction déja ?!