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
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
parce qu'il y a une erreur quelque part. sans plus d'indication (pti bout de code, message d'erreur exact), 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 : Sélectionner tout - Visualiser dans une fenêtre à part
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.h
Code : Sélectionner tout - Visualiser dans une fenêtre à part ChangeEdit(Seuil_PenteTQ,TempSeuil_PenteTQ,Edit13) ;
le prototype :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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.
Ce qui est affirmé sans preuve peut être nié sans preuve Euclide.
Les conversions numériques en C,C++,C++/CLI
DLL d'extensions : écriture d'un plug-in de classe
Démarrer avec les MFC 2/2
Création d'un ActiveX MFC
Intégration d'une imprimante PDF pour éditions automatisées
Migrer du code de Visual C++ 6.0 vers Visual C++ 2005
Démarrer avec les MFC sous Visual C++1/2
la Faq Visual C++ 500 Q/R,Mon blog
Aide en Ligne MFC
Cours et tutoriels C++ - FAQ C++ - Forum C++.
Désolé mais j'ai du mal avec les pointeurs, comment je dois faire ?
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
remplace :
par
Code : Sélectionner tout - Visualiser dans une fenêtre à part ChangeEdit(Seuil_PenteTQ,TempSeuil_PenteTQ,*Edit13) ;
Code : Sélectionner tout - Visualiser dans une fenêtre à part 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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 ChangeEdit(Seuil_PenteTQ, TempSeuil_PenteTQ, &Edit13) ;
Merci
Ecoute dans ta classe tu as
et tu gardes dans ta classe
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 CEdit Edit13 ;
et tu appelles ta méthode comme ça
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 void ChangeEdit(CString Chaine, CString TempChaine, CEdit *Edit);
Vérifie bien tes syntaxes
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 ?!
Partager