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 :

MFC liées statiquement fonctionnent en DEBUG, pas en RELEASE


Sujet :

MFC

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 54
    Par défaut MFC liées statiquement fonctionnent en DEBUG, pas en RELEASE
    Bonjour,

    Mon application utilise les DLL MFC liées statiquement.

    En debug, cela fonctionne bien. En release cela plante...

    Au moment de l'Initinstance j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    	CCommandLineInfo cmdInfo;
    	ParseCommandLine(cmdInfo);
    	if (!ProcessShellCommand(cmdInfo))
    		return FALSE;
    Lors du passage dans la fonction ProcessShellCommand() il créé un nouveau fichier au moyen de la fonction : CDocManager::OnFileNew();
    Après plusieurs opérations, il tombe dans la fonction suivante :
    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
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    /////////////////////////////////////////////////////////////////////////////
    // CSingleDocTemplate commands
     
    CDocument* CSingleDocTemplate::OpenDocumentFile(LPCTSTR lpszPathName,
    	BOOL bMakeVisible)
    	// if lpszPathName == NULL => create new file of this type
    {
    	CDocument* pDocument = NULL;
    	CFrameWnd* pFrame = NULL;
    	BOOL bCreated = FALSE;      // => doc and frame created
    	BOOL bWasModified = FALSE;
     
    	if (m_pOnlyDoc != NULL)
    	{
    		// already have a document - reinit it
    		pDocument = m_pOnlyDoc;
    		if (!pDocument->SaveModified())
    			return NULL;        // leave the original one
     
    		pFrame = (CFrameWnd*)AfxGetMainWnd();
    		ASSERT(pFrame != NULL);
    		ASSERT_KINDOF(CFrameWnd, pFrame);
    		ASSERT_VALID(pFrame);
    	}
    	else
    	{
    		// create a new document
    		pDocument = CreateNewDocument();
    		ASSERT(pFrame == NULL);     // will be created below
    		bCreated = TRUE;
    	}
     
    	if (pDocument == NULL)
    	{
    		AfxMessageBox(AFX_IDP_FAILED_TO_CREATE_DOC);
    		return NULL;
    	}
    	ASSERT(pDocument == m_pOnlyDoc);
     
    	if (pFrame == NULL)
    	{
    		ASSERT(bCreated);
     
    		// create frame - set as main document frame
    		BOOL bAutoDelete = pDocument->m_bAutoDelete;
    		pDocument->m_bAutoDelete = FALSE;
    					// don't destroy if something goes wrong
    		pFrame = CreateNewFrame(pDocument, NULL);
    		pDocument->m_bAutoDelete = bAutoDelete;
    		if (pFrame == NULL)
    		{
    			AfxMessageBox(AFX_IDP_FAILED_TO_CREATE_DOC);
    			delete pDocument;       // explicit delete on error
    			return NULL;
    		}
    	}
    Et il provoque in assert sur le AfxMessageBox(AFX_IDP_FAILED_TO_CREATE_DOC);

    En liant les MFC dynamiquement cela fonctionne bien...
    Si quelqu'un aurait une idée de la raison du plantage...

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 461
    Par défaut
    Quelle ligne ?
    Quelle erreur (le debuggeur le dit)?
    Toutes les librairies et dll sont en Release ?

    etc...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 54
    Par défaut
    Bonjour bacelar,

    Sorry j'avais appuyé sur la mauvaise touche (entre créer et visualiser) et j'avais donc posté un message pas complet.

    Pour info, tout est en release oui.

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 461
    Par défaut
    Je signale que l'on peut faire du pas à pas sous VS, même en Release.
    Il faut juste générer les pdb.

    Donc en débuggant en mode pas à pas en Release, ça donne quoi ?

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Mai 2008
    Messages
    54
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2008
    Messages : 54
    Par défaut
    Oui je suis en mode pas-à-pas en Release...

    Ben cela fait ce qui est dit au début.

  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
    salut,
    tu utilises VC2008 ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Code fonctionne en debug pas en execution
    Par LePhasme dans le forum VBA Word
    Réponses: 5
    Dernier message: 15/05/2008, 10h51
  2. [HTML] Ancre liée à formulaire fonctionne pas avec certains boutons "submit" sur ie6
    Par 12monkeys dans le forum Balisage (X)HTML et validation W3C
    Réponses: 9
    Dernier message: 28/02/2008, 21h30
  3. Fonctionne en Debug mais pas en Release
    Par Baud10 dans le forum MFC
    Réponses: 23
    Dernier message: 04/02/2008, 15h17
  4. [MFC]ModifyStyle ne fonctionne pas...
    Par Dos dans le forum MFC
    Réponses: 5
    Dernier message: 12/07/2005, 18h04
  5. Réponses: 12
    Dernier message: 15/02/2005, 15h34

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