Lancement d'une exception lors de la destruction d'un CString
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:
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.