Bonjour,
Je débute en MFC et je coince sur un problème.
Lorsque j’exécute mon code, il plante en sortant de cette fonction en me lançant une exception :
Exception non gérée à 0x5580f4ec (mfc100d.dll) dans essai_mfc_bis.exe*: 0xC0000005: Violation d'accès lors de la lecture de l'emplacement 0x2022695d.

Cette exception est lancée par le destructeur de CString.

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
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
 
void Cessai_mfc_bisDlg::OnClickedButtonValiderContact()
{
	if(database)
	{
		char question[200];
		CString nom_contact_courant;
		m_TextBoxNom.GetWindowTextA(nom_contact_courant);
		sprintf(question,"Voulez vous sauvegarder les modification du contact %s?",nom_contact_courant);
		int nResult = MessageBox (question, "Editer un contact",MB_YESNO | MB_ICONQUESTION);
		if (nResult == IDYES)
		{
			int rc;
			char *error;
			char sqlSelect [100];
			char **results = NULL;
			int rows, columns;
 
			int id_contact;
			CString nom;
			CString prenom;
			CString email;
			CString telephone;
			CString commentaire;
 
			HTREEITEM hItem = m_IDC_TREE1.GetSelectedItem ();
			CString strItemText = m_IDC_TREE1.GetItemText (hItem);
			sscanf(strItemText,"%d",&id_contact);
			m_TextBoxNom.GetWindowTextA(nom);
			m_TextBoxPrenom.GetWindowTextA(prenom);
			m_TextBoxEmail.GetWindowTextA(email);
			m_TextBoxTelephone.GetWindowTextA(telephone);
			m_TextBoxCommentaire.GetWindowTextA(commentaire);
 
			sprintf (sqlSelect, "UPDATE Contact Set nom = \"%s\", prenom =\"%s\", email = \"%s\", telephone = \"%s\", commentaire = \"%s\" WHERE id_contact = %d;",nom, prenom, email, telephone, commentaire, id_contact);
			rc = sqlite3_exec(database, sqlSelect, NULL, NULL, &error);
			if (rc)
			{
				//cerr << "Erreur d execution de la requete SQLite3 : " << sqlite3_errmsg(database) << endl << endl;
				sqlite3_free(error);
			}
			else
			{
				MessageBox ("La modification a été faite avec succes.", "Editer un contact",MB_OK);
			}
		}
 
		rafraichir_info_contact();
		//desactive les boutons anuler et valider
		m_ButtonAnulerContact.EnableWindow(false);
		m_ButonValiderContact.EnableWindow(false);
	}
}
D'où peut venir ce problème ?

Merci d'avance.