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

OpenGL Discussion :

Access violation Glew init et DLL


Sujet :

OpenGL

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2014
    Messages : 8
    Points : 9
    Points
    9
    Par défaut Access violation Glew init et DLL
    Bonjour,

    J'ai un souci avec l’initialisation de glew dans mon projet.

    J'ai une solution avec 2 projets dll et un .exe
    J'init glew dans le projet 1, qui est mon moteur 3D, le projet 2 est une package de classes qui m'aide pour faire divers projets, entre autre le projet 3.

    Pour résumer je fais un init de glew dans 1(dll) puis je fais des appels Opengl dans 2(dll), tout ça au sein du projet 3(exe).

    j'ai une erreur 0xC0000005: Access violation executing location 0x00000000 sur la 1er methode opengl.

    Si j'init glew dans 2 celà fonctionne. Ca ne fonctionne pas si j'init dans 3 ou 1.

    Pourquoi suis-je obliger d'init glew dans la dll qui fait appel à des appels à OpenGL? A priori je peux faire appel à des methodes OGL dans plusieurs DLL différentes, devrais-je init glew pour chaque dll?

    Merci.

  2. #2
    Membre actif Avatar de monwarez
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2009
    Messages
    144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 30
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2009
    Messages : 144
    Points : 293
    Points
    293
    Par défaut
    Je pense que le problème viens du fait qu'une dll est "indépendante" des programmes qui l'utilise, de ce fait lorsque la dll est chargé elle doit être opérationnelle. En clair c'est son boulot d'appeller glewInit(); , ainsi glew pourra initialiser les pointeurs de fonctions avec des valeurs correctes(pas le pointeur null).Dans le cas de plusieurs dll celà ce complique, le plus simple serait de faire une dll qui encapsule tous les appels à OGL et les autres dépendraient de cette dernière.

  3. #3
    Futur Membre du Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juin 2014
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Gironde (Aquitaine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juin 2014
    Messages : 8
    Points : 9
    Points
    9
    Par défaut
    J'ai finalement trouvé.
    Je linké statiquement glew à chaque dll, en utilisant le linkage dynamique cela fonctionne.

    Merci à vous.

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

Discussions similaires

  1. Access violation à l'appel de DLL
    Par LoGGi dans le forum VC++ .NET
    Réponses: 12
    Dernier message: 29/06/2010, 20h42
  2. Erreur MSJet40.DLL Access Violation
    Par BuzzLeclaire dans le forum Bases de données
    Réponses: 2
    Dernier message: 07/11/2008, 14h36
  3. Réponses: 18
    Dernier message: 09/10/2007, 10h20
  4. MFC42.DLL Access Violation
    Par _yeye_ dans le forum MFC
    Réponses: 1
    Dernier message: 04/07/2007, 17h56
  5. 0xC0000005 Access violation à l'appelle de DLL
    Par mamwrya dans le forum Visual C++
    Réponses: 2
    Dernier message: 28/06/2007, 09h35

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