Partage
  • Partager sur Facebook
  • Partager sur Twitter

[SdlDotNet] Utilisation du contrôle "surface control"

SDL.dll => SDL_PushEvent

Sujet résolu
    28 juin 2011 à 1:27:12

    Bonsoir à tous et à toutes,

    Dans l'optique de travailelr avec la SDLDotNet, qui est la version C# de la bibliothèque SDL, j'ai décidé de suivre le tuto de Gulix (Tuto 1 (PDF) et Tuto 2 (PDF)).
    J'ai pu récupérer le code source utilisé pour son tuto (Archive (ZIP)), le code je commence à le comprendre, j'ai fait quelques tests et c'est concluant.

    Ceci dit, pour pouvoir compiler les applications avec SdlDotNet, on doit absolument forcer la compilation en x86, sinon on aura le droit à une joli exception.
    Chose faite.
    PLus loin dans le tutoriel, il se trouve un éditeur de cartes, plutôt intéressant. Je code je code et la, malheur, une erreur lorsque je lance l'application :

    L'exception DllNotFoundException n'a pas été gérée
    Impossible de charger la DLL 'SDL.dll': Le module spécifié est introuvable. (Exception de HRESULT : 0x8007007E)


    Je me dis que c'est un problème au niveau du fichier SdlDotNet.dll (qui est copié à chaque compilation dans le dossier de Debug). Donc je fais une copie de cette DLL en SDL.dll.

    Hop, je relance, et là :

    L'exception EntryPointNotFoundException n'a pas été gérée
    Impossible de trouver le point d'entrée 'SDL_PushEvent' dans la DLL 'SDL.dll'.


    Comme toute âme de bon programmeur, je me rue sur internet et je cherche ce que ça peut bien être, en vain.
    Sur les forums officiels de la bibliothèque, ce problème n'est pas évoqué. et sur les résultats google, je ne trouve rien...

    Donc je fais appel ici, afin d'avoir un peu d'aide pour résoudre ce problème plutôt gênant, vu que l'éditeur de map ne peut pas être fonctionnel pour le moment.


    Edit : Pour préciser, j'ai testé plusieurs versions de la bibliothèque, plusieurs version du contrôle, plusieurs applications et toutes génèrent le même problème.
    • Partager sur Facebook
    • Partager sur Twitter
      28 juin 2011 à 12:31:29

      Il ne faudrait pas mettre tes DLL en Référence du projet ?
      • Partager sur Facebook
      • Partager sur Twitter
        28 juin 2011 à 13:09:01

        J'ai dépassé ce stade x)
        Évidemment que je l'ai fait. Tout fonctionne impec' sauf lorsque j'utilise ce contrôle.
        • Partager sur Facebook
        • Partager sur Twitter
          28 juin 2011 à 16:43:56

          SDLDotNet n'est pas un remplacement de la SDL pour .Net, c'est un wrapper autour de la DLL SDL.dll. En gros, c'est une couche supplémentaire autour des fonctions C de la SDL qui facilite leur utilisation en C#.
          Pour exécuter ton programme, tu as donc besoin de la dll SDL.dll originale en plus de SDLDotNet.dll ;)
          • Partager sur Facebook
          • Partager sur Twitter
            29 juin 2011 à 18:54:08

            C'est vrai que je n'y ai pas pensé à cette solution.

            Chose faite, j'ai téléchargé la librairie SDL, copié le fichier SDL.dll dans le dossier de mon exécutable, je n'ai plus la même erreur mais une autre :

            L'exception BadFormatImageException n'a pas été gérée
            Tentative de chargement d’un programme de format incorrect. (Exception de HRESULT : 0x8007000B)


            Je suis perdu :(

            EDIT : REUSSI !!! Grand merci à toi Orwell !
            Le problème venait du fait que j'avais oublié de repasser en compilation forcée pour les x86 :)
            ça marche impec maintenant :)
            • Partager sur Facebook
            • Partager sur Twitter

            [SdlDotNet] Utilisation du contrôle "surface control"

            × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
            × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
            • Editeur
            • Markdown