Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1010 connectés 

  FORUM HardWare.fr
  Programmation
  C++

  [VisualC++ 6] Help ! Version Win32 release tombe en erreur

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[VisualC++ 6] Help ! Version Win32 release tombe en erreur

n°997034
Xuarac
Posté le 01-03-2005 à 13:27:44  profilanswer
 

Je suis complètement bloqué !!! Help !
 
J’ai développé une application en phase finale de peaufinement et d’amélioration.
 
Je tente de générer le code définitif de cette application.
La version "Win32 release" tombe en erreur sur le message : "First-chance exception in PermutMatrix.exe: 0xC0000005: Access Violation" alors qu’en mode debug tout marche bien.
 
Cette erreur apparaît alors que jusqu’ici la version "Win32 release" avait toujours fonctionné sans problème.
 
Je n’arrive pas à trouver ce qui produit cette erreur.
Elle intervient très tôt dans la mise en place de l’application, lors de la création de la MainFrame au cours de CMainFrame::Oncreate(…), lors de la création des barres d’outils et de contrôle.
 
J’ai vérifié tous mes pointeurs, éliminé un maximum de code pour restreindre l’application et cerner le problème. Rien.
J’en suis arrivé à soupçonner que l’erreur ne vient pas directement de mon code mais de son environnement, de la gestion des ressources, de la partie précompilée … que sais-je encore …
 
Quel protocole employer en pareil cas ?
Dans quelle direction chercher ?
Auriez-vous un début de piste à me suggérer ?
Comment vous y prendriez-vous ?
 
Sans le debugger je suis complètement démuni.
 
Merci pour votre aide.
 
Xuarac vous salue bien !

mood
Publicité
Posté le 01-03-2005 à 13:27:44  profilanswer
 

n°1000303
SquiZZ
Posté le 04-03-2005 à 01:38:44  profilanswer
 

debugview + OutputDebugString()  
 
http://www.sysinternals.com/ntw2k/ [...] view.shtml

n°1000706
mordicator
Posté le 04-03-2005 à 14:41:51  profilanswer
 

Humm, ca n'a peut-etre rien a voir, mais je suis deja tombe sur une erreur de ce genre mais avec du visual studio.net
 
Chez moi, j'avais des fuites memoires avant meme l'entree dans le main de mon appli, chose que j'ai pu constater en utilisant le fabuleux logiciel boundchecker...
Evidement, en release, ces fuites se transformaient en crash violent...
 
Apres de lonnnnnnnngues recherche, le probleme venait finalement des options de compilations de certaines librairies incluses dans le projet, donc rien a voir avec mon code.
 
Je suis desole, je n'ai pas sous la main de visual donc je vais tenter de t'orienter dans la bonne voie!
 
En gros, dans les options de compilations d'un projet visual, tu as 4 possibilites differentes pour inclure les lib standard: as shared lib, as shared lib multithread, as ddl, as ddl multithread (de memoire ca doit etre ca)
 
Meme si ce reglage parait anodin, crois moi, si tu as du linkage statique ca change tout!
 
Donc, verifie si tu utilise des librairies statiques que celles-ci utilisent bien la meme option pour se linker avec les libs std, juste en corrigeant ca, j'ai resolu mon probleme a la base insolvable (d'autant plus lorsque tu ne possede que les binaires de tes libs...
 
En esperant t'avoir aide...


Message édité par mordicator le 04-03-2005 à 14:43:34
n°1007725
Xuarac
Posté le 10-03-2005 à 09:25:21  profilanswer
 

Eurêka ! j'ai trouvé !!!
 
Après avoir défait progressivement toute mon application, classe par classe, fonction par fonction, j'ai enfin trouvé le bug.
Une saloperie !!!
 
Je suis le coupable !
J'avais ajouté, à la classe CMainFrame, une nouvelle fonction définie par "void OnActivate();", alors qu’existe dans cette classe la fonction membre "afx_msg void OnActivate( UINT nState, CWnd* pWndOther, BOOL bMinimized );"
Cette dernière est la fonction associée au message WM_ACTIVATE.
 
Le mode debug est visiblement capable de distinguer la nuance à faire entre ces deux définitions, pas le mode release. Mon application déraillait bien après avoir exécuté cette fonction d’où la difficulté à circonscrire le problème.
 
Il m’a suffi de définir void Activate(); à la place de void OnActivate();
Deux lettres à retirer pour remettre sur les rails mon application.
 
C’est si simple quand on a trouvé l’aiguille dans la meule de foin !!!
 
Merci beaucoup à ceux qui ont tenté de m’aider.
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C++

  [VisualC++ 6] Help ! Version Win32 release tombe en erreur

 

Sujets relatifs
Requete SQL en ASP -- HelpRevenir dans un textbox apres erreur
comment résoudre l'erreur de script[TASM] Help Noob
VisualC++ 6 || Tabulation sous un RichEdit || TEXTMETRICHelp add new => update
erreur vlookupErreur bizzare
Erreur MySql : Table 'xxx' is read only[C++] Erreur lors de lecture/écriture d'un certain nb de fichiers
Plus de sujets relatifs à : [VisualC++ 6] Help ! Version Win32 release tombe en erreur


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR