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

SDL Discussion :

Utilisation de SDL2 depuis une DLL


Sujet :

SDL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Mars 2014
    Messages : 15
    Par défaut Utilisation de SDL2 depuis une DLL
    Bonjour,

    Voici mon problème:
    Je développe un petit moteur 2d que je veux utiliser sous forme de dll.
    J'essaye d’intégrer mingw32 SDL2.dll et SDL2main à cette library.

    Seulement, dans le programme utilisant la dll, j'obtiens le fameux "undefined reference to `WinMain@16'".
    Je n'ai, par ailleurs, aucun problème de linkage lorsque je crée une application en intégrant directement SDL2 à mon programme.
    J'ai fait pas mal de recherche, vérifier et tester mes paramètres de linkage, la version de mes libs, etc...

    Je précise que j'utilise CodeBlocks et MinGW tdm 32bits.

    Actuellement, j'utilise une solution de contournement, en définissant une fonction WinMain qui appel ma fonction main:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    extern "C"
    {
        int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
        {
            return main(0, 0);
        }
    }
    Mais je ne considère pas cela comme une solution valable.

    Je vous remercie d'avance pour votre aide.

    Kesitem

  2. #2
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 160
    Billets dans le blog
    152
    Par défaut
    Bonjour,

    Normalement, cela se règle avec libmingw32.a ... mais vous semblez l'avoir mis (il faut bien le mettre en premier par contre).
    Sinon, vous pouvez toujours utiliser un des templates : http://jeux.developpez.com/telecharg.../709/Templates Quitte à comparer avec ce que vous avez fait.
    Pourquoi vous incluez juste SDL2.dll et pas le libsdl2.a ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  3. #3
    Membre averti
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Mars 2014
    Messages : 15
    Par défaut
    Bonjour,

    Merci pour tes réponses, je ne connaissais pas ces templates, je vais essayé ça rapidement.

    Tu as raison, je vais utiliser lidSDL2.a plutot que la bibliothèque dynamique (à la base mon projet était une lib statique et je n'ai pas pensé à switcher...).

    Kesitem

    ps: je ne mets pas le sujet en résolu, si les templates fonctionnent ou si je trouve la solution, je l'indiquerai ici.

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 160
    Billets dans le blog
    152
    Par défaut
    Pas dit que la .dll soit pour autant une bibliothèque statique. Je n'ai pas mémoire d'avoir vu des bibliothèques statiques proposées directement .
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

  5. #5
    Membre averti
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Mars 2014
    Messages
    15
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Mars 2014
    Messages : 15
    Par défaut
    Citation Envoyé par LittleWhite Voir le message
    Pas dit que la .dll soit pour autant une bibliothèque statique. Je n'ai pas mémoire d'avoir vu des bibliothèques statiques proposées directement .
    Je ne comprends pas ta remarque?

    L'intégration de la version statique de la lib ne pas posé de problème.

    Par contre, je n'ai pas toujours réussi à régler mon problème. J'ai refait un projet vierge en reconfigurant mes projets pas à pas. Pas de changement.
    Je vais compiler SDL2 avec les informations debug et voir si SDL_main est correctement appelé. Si c'est le cas, je garde ma solution.

    Kesitem

  6. #6
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2008
    Messages
    27 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Mai 2008
    Messages : 27 160
    Billets dans le blog
    152
    Par défaut
    Donc vous gardez une solution non portable ?
    Vous souhaitez participer à la rubrique 2D/3D/Jeux ? Contactez-moi

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

Discussions similaires

  1. Utilisation d'un Object COM depuis une DLL
    Par jdflaugergues dans le forum C#
    Réponses: 0
    Dernier message: 16/04/2014, 16h25
  2. appel d'une fonction utilisant Opencv depuis une dll c++
    Par manoulaisamm dans le forum Bibliothèques
    Réponses: 4
    Dernier message: 06/03/2014, 13h43
  3. Exporter et utiliser une classe depuis une DLL
    Par Havy_25 dans le forum Langage
    Réponses: 1
    Dernier message: 14/07/2009, 19h31
  4. utilisation des fonctions d'une dll
    Par jackk dans le forum C++
    Réponses: 14
    Dernier message: 15/06/2005, 16h50
  5. Comment charger un TFrame depuis une dll ?
    Par Millenod dans le forum Langage
    Réponses: 29
    Dernier message: 22/12/2004, 14h48

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