un edit qui ne marche pas
Dans mon module de test d'extraction de date et heure, j'extrais la date et l'heure d'un GPS, la date je l'affiche dans edit1 et l'heure dans l'Edit2.
Module de test 1: Celui ui marche pas
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22
|
void Ctest_one_shootView::OnBnClickedButton1()
{
CString tmp1,tmp2;
try
{
pApp->NMEA183.recupTRAME();
pApp->NMEA183.Extraire_date(date);
pApp->NMEA183.Extraire_heure(heure);
tmp1=(CString)date;
tmp2=(CString)heure;
SetDlgItemText(IDC_EDIT1,tmp1);
SetDlgItemText(IDC_EDIT2,tmp2);
}
catch (char *Err)
{if (strcmp (Err,"Erreur #003")==0)
{MessageBox(TEXT("Impossible de lire sur le port com"),TEXT("Erreur #003"),MB_ICONSTOP);
}
}
} |
Lors du pas-à-pas je me suis rendu compte que c'était lors du passage dans SetDlgItemText qu'il m'envoyaissur cette erreur
Code:
1 2 3 4 5 6 7
|
_CRTIMP void _cdecl _CrtDbgBreak(
void
)
{
DebugBreak();
} |
J'ai réalisé un autre module de test qui lui marche, la chaine que j'ai tapé dans l'Edit1 s'affiche dans l'edit2 en passant par un conversion en char* et à nouveau en CString.
Module de test 2: celui qui marche
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
|
void CConversionView::OnBnClickedButton1()
{
int lenght;
CString str,str2;
CEdit *Edit1;
Edit1=static_cast<CEdit*>(GetDlgItem(IDC_EDIT1));
Edit1->GetWindowTextW(str);
lenght=Edit1->GetWindowTextLengthW();
conv=new char(lenght);
convertirCHAR(&str,conv,lenght);
str2=(CString)conv;
SetDlgItemText(IDC_EDIT2,str2);
} |
Je ne vois pas pourquoi le module de test 1 ne fonctionne pas c'est exactement le même fonctionnement que le n°2 à la différence que j'affiche des informations extraites dans le 1