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 : 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
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : 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
 
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