IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MFC Discussion :

Violation d'accès en écriture


Sujet :

MFC

  1. #1
    Membre averti
    Inscrit en
    Décembre 2004
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 46
    Par défaut Violation d'accès en écriture
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Exception de première chance à 0x58b83216 dans JomPred.exe:0xC0000005: Violation d'accès lors de l'écriture à l'emplacement 0x00463014.
    comment déterminer ce qui provoque cette erreur

  2. #2
    Expert confirmé

    Homme Profil pro
    pdg
    Inscrit en
    Juin 2003
    Messages
    5 756
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : pdg

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 756
    Billets dans le blog
    3
    Par défaut
    En utilisant le débogueur.

  3. #3
    Membre averti
    Inscrit en
    Décembre 2004
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 46
    Par défaut
    pinaise, j'aurais demandé, j'aurais pas eu mieux ^^

    je m'attendais plus à un style d'erreur commun qui génère ce message... genre une aide sur l'orientation de la recherche...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    CCommandLineInfo cmdInfo;
    ParseCommandLine(cmdInfo);
    if (!ProcessShellCommand(cmdInfo)) return FALSE;
    je n'ai pas le warning juste avant le if, et je l'ai apres.... j'imagine que j'y peux pas grand chose alors (j'ai essayé pendant 30mn de tracer, mais ça passe dans une 20 aine de fichier annexe .cpp ou .asm qui ne m'aident pas beaucoup)

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    tu compiles et link ton projet en mode debug .
    tu lances ton projet en mode debug trace .(F5)
    et tu debug l'erreur en remontant la pile des appels jusqu'a ton code qui provoque l'erreur.
    voir aussi faq:
    http://c.developpez.com/faq/vc/?page...gPointeurValue


  5. #5
    Membre averti
    Inscrit en
    Décembre 2004
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 46
    Par défaut
    je l'ai fait (voir juste au dessus), meme qu'apres, comme dit plus haut, avec F11 je me balade dans des dizaines de fichier

    je parlais plus du style d'erreur courante qui pourrait générer ce warning


    un peu comme dans un dialog dérivant de CDialog, si on omet this->DestroyWindow(), on peut avoir des Warning: calling DestroyWindow in CDialog::~CDialog -- OnDestroy or PostNcDestroy in derived class will not be called

    enfin bref, apparemment c'est un truc "quelque part" qui ne change rien à mon projet et que j'arrive pas à détecter, donc bon....

  6. #6
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    on va le dire autrement.
    si tu lances ton programme en Debug trace ,tu as l'erreur 0xC0005 oui ou non ?

  7. #7
    Membre averti
    Inscrit en
    Décembre 2004
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 46
    Par défaut
    le message que j'ai mis plus haut arrive juste après le passage de la fonction citée

    je compile pratiquement que en DEBUG. Je génère une Release par soir, et c'est tout. En général le debug active le tracage et dump pour repérer les trucs comme les memory leaks, alors pkoa compiler en release tant que c'est pas fini

  8. #8
    Membre averti
    Inscrit en
    Décembre 2004
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Décembre 2004
    Messages : 46
    Par défaut
    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
    // Inscrire les modèles de document de l'application. Ces modèles
    	// lient les documents, fenêtres frame et vues entre eux
    	CSingleDocTemplate* pDocTemplate;
    	pDocTemplate = new CSingleDocTemplate(
    		IDR_MAINFRAME,
    		RUNTIME_CLASS(CJomPredDoc),
    		RUNTIME_CLASS(CMainFrame),       // fenêtre frame SDI principale
    		RUNTIME_CLASS(CJomPredView));
    	if (!pDocTemplate) return FALSE;
    	AddDocTemplate(pDocTemplate);
     
    	// ##############################
    	// LIGNE DE COMMANDE DE LANCEMENT
    	// ##############################
    	// Analyser la ligne de commande pour les commandes shell standard, DDE, ouverture de fichiers
    	CCommandLineInfo cmdInfo;
    	ParseCommandLine(cmdInfo);
     
    	// Distribue les commandes spécifiées dans la ligne de commande. Retourne la valeur FALSE si
    	// l'application a été démarrée avec /RegServer, /Register, /Unregserver ou /Unregister.
    	if (!ProcessShellCommand(cmdInfo)) return FALSE;
    	// ##############################
     
    	// on cache de base la fenêtre pour que le splash soit affiché seul à l'écran
    	m_pMainWnd->ShowWindow(SW_HIDE);
    	m_pMainWnd->UpdateWindow();
    un point d'arret sur :
    if (!ProcessShellCommand(cmdInfo)) return FALSE;

    la fenetre de sortie : aucune erreur

    je presse ensuite F10 pour passer au 2e point d'arret (le showwindow qui cache la fenetre principale pour laisser le splashscreen)

    la fenetre de sortie : erreur violation bidule


    bref, c'est donc dans if (!ProcessShellCommand(cmdInfo)) return FALSE; ou les lignes de commentaire ou quelque chose en parallele qu'il y a une erreur

    mais le F11 sur le 1er point m'envoie balader dans des fichiers comme appui2.cpp, afxstate.cpp, afxtls.cpp, etc... bref, meme s'il y avait une erreur la dedans, ça ne serait du qu'à quelque chose de mon programme... (genre une variable appelé depuis ces fonctions)

    la seule chose que je vois c'est que j'ai giclé les menus New, Open etc cie (je ne traite pas fichier), et que la ligne de commande faisait peut être appel à quelque chose que j'ai mal nettoyé...

    mais rien de grave je suppose

  9. #9
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    si ça plante sur ProcessShellCommand
    verifie ta view .
    met un point d'arret dans le constructeur.
    puis OnInitialUpdate.
    et trace pas a pas.
    verifie aussi la construction de ta mainframe.
    n'empeche que :
    ça serait pas mal d'avoir aussi la ligne de code sur laquelle l'assertion apparait....

Discussions similaires

  1. Violation d'accès en lecture écriture
    Par 3Fred9 dans le forum Langage
    Réponses: 5
    Dernier message: 30/03/2010, 14h36
  2. [XMLDocument] Violation d'accès
    Par xant dans le forum Composants VCL
    Réponses: 8
    Dernier message: 29/09/2004, 15h39
  3. requete / violation d'accès
    Par marie253 dans le forum Bases de données
    Réponses: 4
    Dernier message: 13/08/2004, 13h29
  4. Violation d'acces apres Execute
    Par SegmentationFault dans le forum Connexion aux bases de données
    Réponses: 6
    Dernier message: 10/08/2004, 16h23
  5. Violation d'accès apres Close
    Par SegmentationFault dans le forum Bases de données
    Réponses: 3
    Dernier message: 05/07/2004, 16h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo