malone12
Messages postés3Date d'inscriptionjeudi 25 décembre 2008StatutMembreDernière intervention 4 février 2011
-
21 janv. 2011 à 17:45
cs_Keneda
Messages postés32Date d'inscriptionjeudi 8 mai 2003StatutMembreDernière intervention 3 octobre 2012
-
25 janv. 2011 à 04:19
Bonjours tous le monde
J’espère trouve une solution a mon problème ici, j’ai une application sous Delphi 7, l’application s’exécute sans problème mais lorsque je travaille avec un certain moment j’ai le message suivant
‘’violation d’accès à l’adresse 0x77e62483 : écriture de l’adresse 0x008b0ffc ‘. Je ne comprends vraiment pas le problème, j’attend votre aide, merci
WhiteHippo
Messages postés1154Date d'inscriptionsamedi 14 août 2004StatutMembreDernière intervention 5 avril 20122 21 janv. 2011 à 19:17
Bonsoir
Il faut utiliser l'adresse de l'erreur pour tenter d'isoler où se situe le problème.
Pour ce faire, tu lances l'execution du programme à partir de l'environnement Delphi en appuyant sur F7 ("Pas à pas approfondi") Tout de suite le programme va s'arreter. Ensuite dans le menu "Chercher" tu choisis le sous menu "Erreur d'execution", une mini fenêtre s'ouvre dans laquelle tu saisis l'adresse de l'erreur, c'est à dire dans ton cas $77E62483 et là Delphi va t'ouvrir la fenêtre CPU à l'adresse de l'erreur.
N.B. Dans le menu Projet>Options...>Compilateur il serait bon de cocher toutes les cases de "Erreurs à l'execution" ainsi que toutes celle du "Débogage".
Cordialement.[hr]"L'imagination est plus importante que le savoir." Albert Einstein
cs_Keneda
Messages postés32Date d'inscriptionjeudi 8 mai 2003StatutMembreDernière intervention 3 octobre 2012 25 janv. 2011 à 04:19
Salut, pour ton problème, tu as plusieurs solutions pour le résoudre.
Il faut savoir que souvent le message d'erreur "violation d'accès à l'adresse...." se produit lorsque ton programme tente d'accéder à un objet qui n'est pas instancié (un pointeur à nil, par exemple un objet qui n'a pas été crée:
exemple:
interface
//// avant ça ya par exemple une déclation de TForm1
type TMaClasse = class
published
MaProp : string read FMaProp;
end;
var MaClasse: TMaClasse;
implementation
procedure TForm1.Create(Sender: TObject);
begin
MaClasse.MaProp:= 'Hello world';
end;
Et bien ce programme va planter avec le message violation d'accès car tu tentes d'accéder à MaClasse alors que tu ne l'as pas encore créé. (MaClasse:= TMaClasse.Create);
la violation d'accès peut aussi intervenir sur des programmes complexes (en package, en dll) lorsque le debogueur ne retrouve pas une reférence. Il est comme perdu et renvoi ce type d'erreur.
Si tu as les sources de ton programme, tu peux utiliser l'option arrêt si exception (menu outils, options du débogueur, puis tu coches la case : Arrêter sur exception Delphi dans l'onglet Exceptions du langage. Puis tu lances ton programme à partir de Delphi (CTRL + F9) et tu attends que ton programme plante (ou plutôt tu essayes de reproduire l'erreur en manipulant ton programme). Dès que tu auras l'erreur si ton programme n'est pas trop complexe et que tes DCU sont tous à jour, Delphi va gentillement se positionner à l'endroit ou ça plante et tu n'auras plus qu'a déboguer les lignes de codes incriminées.
voili, n'hésites pas si tu as des questions ;-)
@+ Et que Delphi vive très très longtemps c'est un vrai langage de pro, pas un langage foutoire comme le C# :P