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

C++ Discussion :

[VC++ 2008] Exception non gérée


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité4
    Invité(e)
    Par défaut [VC++ 2008] Exception non gérée
    Bonjour,

    en migrant un projet de CodeBlocks à Visual C++ Express 2008, j'ai
    eu un problème.
    Après avoir compilé, au lancement de l'executable j'ai un message d'erreur
    (voir la pièce jointe).

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    HEAP[Lost on the Path - SFML.exe]: Invalid allocation size - CCCCCCD0 (exceeded 7ffdefff)
    Exception de première chance à 0x7c812aeb dans Lost on the Path - SFML.exe : Exception Microsoft C++ : std::bad_alloc à l'emplacement mémoire 0x0013f8ec..
    HEAP[Lost on the Path - SFML.exe]: Invalid allocation size - CCCCCCCD (exceeded 7ffdefff)
    Exception de première chance à 0x7c812aeb dans Lost on the Path - SFML.exe : Exception Microsoft C++ : std::bad_alloc à l'emplacement mémoire 0x0013f28c..
    Exception de première chance à 0x7c812aeb dans Lost on the Path - SFML.exe : Exception Microsoft C++ : [rethrow] à l'emplacement mémoire 0x00000000..
    Exception de première chance à 0x7c812aeb dans Lost on the Path - SFML.exe : Exception Microsoft C++ : [rethrow] à l'emplacement mémoire 0x00000000..
    Exception de première chance à 0x7c812aeb dans Lost on the Path - SFML.exe : Exception Microsoft C++ : [rethrow] à l'emplacement mémoire 0x00000000..
    Exception non gérée à 0x7c812aeb dans Lost on the Path - SFML.exe : Exception Microsoft C++ : std::bad_alloc à l'emplacement mémoire 0x0013f28c..
    L'erreur survient dans une dll, linkée de façon statique à l'exécutable.

    Code de la DLL
    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
    vector<string> FileContent;
    vector<string> FileContent2;
     
    bool DllExport L_OpenArch(string Filename, int MemoryMode)
    {
     
        vector<string> *t;
        if (MemoryMode == LOTPFORMAT_USE_1)
            t = &FileContent;
        else
            t = &FileContent2;
     
            t->push_back(Filename); // CETTE Ligne provoque l'erreur
     
        return true;
    }
    Là je suis un peu perdu.

    Si vous avez une idée,

    Merci


    EDIT: Si je commente la ligne dans la dll, il me fait la même erreur, mais cette vois dans le programme.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    sf::RenderWindow * LotPWin;
    int WINAPI WinMain(HINSTANCE hinstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
    {
     
          // ICI
          LotPWin = new sf::RenderWindow(sf::VideoMode(1024, 768, 32), "Lost on the Path");
    Images attachées Images attachées  
    Dernière modification par Invité4 ; 16/02/2009 à 21h24.

  2. #2
    Invité4
    Invité(e)
    Par défaut
    Je me demande si ce n'est pas un problème de réglage du compilateur.
    Ce n'est pas la dll, vu que si je commente la ligne, ça plante ailleurs.

  3. #3
    Membre Expert

    Profil pro
    Inscrit en
    Juin 2006
    Messages
    1 294
    Détails du profil
    Informations personnelles :
    Localisation : Royaume-Uni

    Informations forums :
    Inscription : Juin 2006
    Messages : 1 294
    Par défaut
    Salut,

    Il faut t'assurer que tu as compilé la DLL et l'application avec les mêmes options de compilation (avec la même version de la runtime C (= CRT) surtout), sinon tu ne peux pas passer de std::string de l'une à l'autre.
    Ce qui est alloué d'un côté doit être désalloué du même côté, ou en tous cas avec la même version de la runtime C.

    MAT.

  4. #4
    Invité4
    Invité(e)
    Par défaut
    Ce que je ne comprends pas c'est que l'exe et les dll sont compilés avec l'option /MD donc utilisent tous la même bibliothèque.
    Je linke aussi en static la librairie SFML, mais je ne pense pas que c'est ça.

    Par contre, en compilant l'exe j'ai ça :
    LINK : warning LNK4098: conflit entre la bibliothèque par défaut 'LIBCMT' et les autres bibliothèques ; utilisez /NODEFAULTLIB:library

    EDIT:J'ai exclu LIBCMT dans l'exe, mais même problème.
    Dernière modification par Invité4 ; 17/02/2009 à 07h32.

  5. #5
    Membre Expert
    Avatar de poukill
    Profil pro
    Inscrit en
    Février 2006
    Messages
    2 155
    Détails du profil
    Informations personnelles :
    Âge : 41
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 2 155
    Par défaut
    Citation Envoyé par Eldacar Voir le message
    Par contre, en compilant l'exe j'ai ça :
    LINK : warning LNK4098: conflit entre la bibliothèque par défaut 'LIBCMT' et les autres bibliothèques ; utilisez /NODEFAULTLIB:library
    C'est LE message de conflit entre CRT. C'est clair. Y'a donc un truc qui cloche. Es tu sur que toutes les lib que tu utilises sont en /MD ?

    EDIT:J'ai exclu LIBCMT dans l'exe, mais même problème.
    Ca sert à rien d'exclure quoi que ce soit, le problème est au niveau des CRT. Il faut mettre les mains dans le camboui !

  6. #6
    Invité4
    Invité(e)
    Par défaut
    Citation Envoyé par poukill Voir le message
    C'est LE message de conflit entre CRT. C'est clair. Y'a donc un truc qui cloche. Es tu sur que toutes les lib que tu utilises sont en /MD ?


    Ca sert à rien d'exclure quoi que ce soit, le problème est au niveau des CRT. Il faut mettre les mains dans le camboui !
    C'est à dire ?

Discussions similaires

  1. Réponses: 2
    Dernier message: 09/07/2007, 11h55
  2. Erreur : Exception non gérée
    Par Pokerstar dans le forum VB.NET
    Réponses: 14
    Dernier message: 22/05/2007, 09h38
  3. Réponses: 2
    Dernier message: 11/05/2006, 11h34
  4. [C#] exception non gérée
    Par zorglub88 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 27/03/2006, 16h28
  5. Réponses: 4
    Dernier message: 14/02/2005, 19h41

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