Accueil > Forum > > > > [C++ Builder] Problème EAccessViolation a la fermeture du programme
[C++ Builder] Problème EAccessViolation a la fermeture du programme
mercredi 19 décembre 2007 à 11:22:15 |
[C++ Builder] Problème EAccessViolation a la fermeture du programme

Sat83
|
Bonjour! Je viens réclamer votre aide car je suis face a un problème dont je ne comprend pas la cause. J'ai une exception EAccessViolation a la fermeture de mon programme, et plus précisement en mode pas à pas : WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { Application->Initialize(); Application->CreateForm(__classid(TFPrinc), &FPrinc); Application->Run(); } catch (Exception &exception) { Application->ShowException(&exception); } return 0; } // en pas à pas, l'exception se produit ici !!!Ce qui est plus surprenant, c'est que j'arrive a "resoudre" le problème en ne libérant pas un objet dans mon programme : void __fastcall TFPrinc::BtnConvertClick(TObject *Sender) {
MonObjet *obj = new MonObjet (); bool retour = obj ->maFonction( sourceFile, destFile, applicationPath) ; //[...] delete fichierGPS ; // si j'enleve cette ligne, il n'y a pas d'exception // à la fermeture du programme }A noté qu'a l'execution, il n'y a pas de problème et le "delete fichierGPS" ne produit aucune exception. Donc qu'il soit présent ou pas, le programme s'execute sans erreur. C'est juste a la fermeture du programme qu'une exception se produit si cette ligne est présente. J'ai trouvé par hazard que en enlevant cette ligne l'exception ne se produisait plus, j'en est deduit que c'était lié, mais rien n'est sûr! Si vous avez une idée d'où peut provenir cette erreur, ou vers où m'orienter pour la résoudre, je suis preneur! Merci d'avance!
|
|
mercredi 19 décembre 2007 à 18:19:52 |
Re : [C++ Builder] Problème EAccessViolation a la fermeture du programme

juju12
|
En général ce type d'erreur indique que la pile a été corrompue, par exemple que tu as écris dans un tableau au-delà de ses bornes ou un problème de pointeur, enfin un truc du genre. Cela dit ton code est très orienté objet c'est peut-être le runtime qui veut libérer un objet déjà libéré : qu'est-ce-que c'est que ton fichierGS, comment est-il créé, sous quelle portée, qu'y-a-t'il dans son destructeur?
|
|
mercredi 19 décembre 2007 à 21:09:50 |
Re : [C++ Builder] Problème EAccessViolation a la fermeture du programme

Sat83
|
En faite c'est une erreur, ce n'est pas delete fichierGPS mais delete obj :
void __fastcall TFPrinc::BtnConvertClick(TObject *Sender) {
MonObjet *obj = new MonObjet (); bool retour = obj ->maFonction( sourceFile, destFile, applicationPath) ; //[...] delete obj; // si j'enleve cette ligne, il n'y a pas d'exception // à la fermeture du programme }
A noté que l'objet en question (classe MonObjet) n'a pas été devellopé par moi (mais par l'ancien dévellopeur) et que c'est une classe assez complexe utilisant notamment des DLL. Mais cette classe est assez "ancienne" dans le sens où elle a déja été utilisée à de nombreuses reprise dans des programmes et qu'il n'y a jamais eu ce genre de soucis.
En faite ma plus grosse intérogation c'est que ce passe t'il au moment ou mon programme plante:
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int) { try { Application->Initialize(); Application->CreateForm(__classid(TFPrinc), &FPrinc); Application->Run(); } catch (Exception &exception) { Application->ShowException(&exception); } return 0; } <= en pas à pas le programme est ici, tout va bien, j'appuis sur F8 ça plante!
Je pensais qu'après cette parenthèse le programme s'arretais, mais apparement il fait encore quelque chose qui plante. Est ce que quelqu'un ce que fait le programme entre cette derniere parenthèse et la fin réèlle du programme?
Merci d'avance si quelqu'un a une idée...
|
|
jeudi 20 décembre 2007 à 17:57:10 |
Re : [C++ Builder] Problème EAccessViolation a la fermeture du programme

juju12
|
Réponse acceptée !
Bof sans code en plus difficile de dire... Quant à ce qu'il se passe après le return, c'est le Runtime qui libère les ressources et le processus qui se termine, si quelque chose est corrompu avant ça peut planter là.
Un question tout de même : si tu fais uniquement MonObjet *obj = new MonObjet (); suivi de delete obj, sans effectuer d'autres manips sur l'objet, est-ce-que cela plante également?
|
|
vendredi 21 décembre 2007 à 10:27:41 |
Re : [C++ Builder] Problème EAccessViolation a la fermeture du programme

Sat83
|
Effectivement si je n'effectue rien entre la création et la destruction de l'objet tout se passe bien.
Et je me suis rendu compte que le problème venait de l'utilisation de la DLL utilisée par MonObjet. A defaut d'avoir resolu completement le problème, je l'ai isolé et donc je vais me debrouillé pour le minimiser au maximum.
Merci en tout cas d'avoir pris le temps pour me repondre.
|
|
Cette discussion est classée dans : problème, programme, application, fermeture, exception
Répondre à ce message
Sujets en rapport avec ce message
Problème lors de la fermeture de sockets [ par malik7934 ]
Hello,J'ai dans mon programme un socket qui est ouvert et j'envoie d'un client vers un serveur (et vice versa) des infos qui sont traîtées à chaque fo
Exception [ par GrosTony ]
Salut,Mon problème commence lors d'un avec un programme que j'ai du récupérer et valider, mais le problème est qu'il avait été testé avec seulement 3
Problème de fermeture de fenêtre principale [ par tigerskin ]
Bonjour !!J'ai un problème avec un programme que j'ai réalisé : tout le déroulement de mon programme se passe bien mais lorsque je quitte ma fenêtre p
Problème sous Visual C++ [ par vince140 ]
Bonjour,je n'arrive pas à lancer mes applications sur une autre machine que celle qui a servie à leur compilation.Lorsque j'ouvre le programme, j'ai d
Fermeture d'application de la barre de tache à partir de mon programme [ par gofio79 ]
Bonjour,Je cherche à fermer les applications que l'on peut voir dans la barre de tâche en bas à partir de mon programme Windows (je ne programme pas e
problème avec application SDL [ par Aroxan ]
Salut à tous. Voici la situation : J'ai codé un programme en utilisant la bibliothèque graphique SDL avec Code::Blocks. Le programme répond parfaitem
SDL OpenGL, crash à la fermeture de l'application [ par mohdaef ]
Bonjour à tous, Je cherche à apprendre à utiliser la bibliothèque SDL avec OpenGL j'ai fait quelque test et je suis confronté à un problème relativem
problème de compilation [ par boualiasma ]
Bonjour, J'ai un programme codé en c sous Microsoft Visual C++ 6.0 qui compile et s'éxecute bien. J'ai essayé de compiler ce programme avec Dev-C++
Hook clavier C++ (ou Java) [ par xmaple ]
Bonjour, Voici mon problème, je souhaiterai faire un programme sous windows que je lancerai sur une invite de commande et qui détecterai les touches d
malloc induit une boucle infinie [ par macburn ]
Bonjour tout le monde ! Pour mon premier message, j'aimerai mettre en évidence un problème assez étrange dont je ne parviens pas a m'extirper... J'a
Livres en rapport
|
Derniers Blogs
JOYEUX ANNIVERSAIRE NIXJOYEUX ANNIVERSAIRE NIX par ebartsoft
Souhaitons un bon et joyeux anniversaire à notre hôte à tous, Nix.
Je ne le répéterais jamais assez mais sans lui rien ne serait possible. Il défit en permanence les lois de la gravité et comme il le dit si bien, si tu lui fais confiance ça devra...
Cliquez pour lire la suite de l'article par ebartsoft IMAGINE CUP 2012, MAKE A SIGN EN FINALEIMAGINE CUP 2012, MAKE A SIGN EN FINALE par junarnoalg
Voilà qui est fait, la nouvelle est officielle ! L'équipe belge "Make a Sign" va au pays des kangourous défendre son projet dans la catégorie Software Design. http://www.imaginecup.com/CompetitionsContent/Competition/WorldwideFinalists.aspx V...
Cliquez pour lire la suite de l'article par junarnoalg KINECT 1.5 IS OUT !KINECT 1.5 IS OUT ! par Vko
La version 1.5 du Kinect For Microsoft vient tout juste de sortir ! Plein de nouveautés: Tracking de squelette en Near Mode Détection en position assise Détection faciale avec un SDK dédié Documentation et des guideline (enfin) Un out...
Cliquez pour lire la suite de l'article par Vko LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) LES ACTUALITéS DE LA SEMAINE SUR C2I.FR (14 MAI - 20 MAI) par richardc
Mise à jour des Web API du 14 Mai
Réservez dès maintenant votre journée du 20 juin pour le Windows Azure Dev Camp 2012 à Paris
Mise à jour de Team Foundation Service
MechCommander 2 sur Windows 8
Entity Framework 5 Release Candidate e...
Cliquez pour lire la suite de l'article par richardc REACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITERREACTIVE EXTENSIONS : CONSOMMER DES SERVICES AVEC RX PARTIE 3, LES PIèGES à éVITER par Groc
Une mauvaise utilisation de rx lors de l'écriture d'une couche d'accès à des services peut conduire à des cas embarassants avec des erreurs mal gérées, des appels qui ne partent lorsqu'ils le devraient, et même des résultats incorrects . le tout nuis...
Cliquez pour lire la suite de l'article par Groc
Logiciels
sDEVIS-FACTURES vlPRO (8.1.0.3)SDEVIS-FACTURES VLPRO (8.1.0.3)sDEVIS-FACTURES vlPRO a été mis au point pour les particuliers, créateurs, entrepreneurs, artisa... Cliquez pour télécharger sDEVIS-FACTURES vlPRO 974 Application Server (12.2.4.6)974 APPLICATION SERVER (12.2.4.6)Développez de puissantes applications dans un environnement de 'cloud computing', clusterisé, séc... Cliquez pour télécharger 974 Application Server vPicture (1.4.2.1)VPICTURE (1.4.2.1)Avec vPicture, hébergez vos images facilement et rapidement.
vPicture est un utilitaire simple, ... Cliquez pour télécharger vPicture Easy-Planning (2.2.1.6)EASY-PLANNING (2.2.1.6)Easy-Planning permet de créer des plannings sous la représentation de diagrammes et est adapté au... Cliquez pour télécharger Easy-Planning COM-BACKUP (2.0)COM-BACKUP (2.0)
COM-BACKUP est un logiciel de sauvegarde qui permet de planifier les sauvegardes de vos dossiers ...
Cliquez pour télécharger COM-BACKUP
|