bonjour,
J'ai un soucis avec une fonction dans laquelle j'ouvre une fenêtre.
Cette fonction bloque au moment de l'ouverture de la deuxième fenêtre...
Voici le code associé :
Une fois l'application lancer si le login et le mot de passe sont valable, normalement une deuxiéme fenêtre devrai s'ouvrir... mais le débeugeur m'annonce une violation d'adresse mémoire et me bloque sur la ligne :
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 //--------------------------------------------------------------------------- #include <vcl.h> #pragma hdrstop #include "Unit1.h" #include "Unit5.h" #include "Unit6.h" //--------------------------------------------------------------------------- #pragma package(smart_init) #pragma resource "*.dfm" TForm1 *Form1; TForm5 *Form5; TForm6 *Form6; //--------------------------------------------------------------------------- __fastcall TForm5::TForm5(TComponent* Owner) : TForm(Owner) { } //--------------------------------------------------------------------------- void TForm5::Securite(AnsiString login, AnsiString mdp) { login_predefini = String("abc"); mdp_predefini = String("abc"); if (login != login_predefini || mdp != mdp_predefini) { Application->MessageBox("Nom d'utilisateur ou mot de passe invalide", "Erreur de Login",MB_OKCANCEL); } if (login == login_predefini && mdp == mdp_predefini) { Application->MessageBox("Bonjour","Login accepter",MB_OKCANCEL); Form5->Visible = false; Form1->Visible = true; } } void __fastcall TForm5::Button_ValiderClick(TObject *Sender) { char* login = new char[ Edit_Login->Text.Length() + 1 ]; strcpy( login, Edit_Login->Text.c_str() ); char* mdp = new char[ Edit_mdp->Text.Length() + 1 ]; strcpy( mdp, Edit_mdp->Text.c_str() ); Securite(login, mdp); }
Si quelqu'un a une idée, par ce que je suis un peut larguer...
Code : Sélectionner tout - Visualiser dans une fenêtre à part Securite(login, mdp);
Merci par avance
Partager