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 :

Recherche dans une dll


Sujet :

C

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 70
    Points : 52
    Points
    52
    Par défaut Recherche dans une dll
    Salut les développeurs !

    Voila mon "problème" : J'ai un programme C Prog.c (à l'heure actuelle) qui utilise des fonctions issues d'une DLL Pile.dll. Ce programme en C cherche la fonction en fonction de sa chaîne de caractère.

    Exemple : Je cherche à utiliser une fonction Empiler(), qui se trouve dans la DLL, dans mon fichier C. Grâce aux pointeurs, au LoadLibrary et surtout GetProcAddress j'utilise Mon_Empiler() qui appelle la fonction Empiler en récupérant un pointeur sur la fonction à l'aide de sa chaîne de caractère : Mon_Empiler = GetProcAdress(DLL, "Empiler") (en abrégé).

    Malheureusement, j'ai beaucoup de fonctions de ce type là dans ma DLL et si je dois faire ça pour toutes mes fonctions c'est assez fastidieux et lourd... (Je parle de la création de Mon_Empiler, Mon_Depiler, Mon_Free,...). Est il possible en C de parcourir toutes ma DLL et de trouver toutes les fonctions présentes afin d'appliquer un modèle?

    Le problème n'est pas forcément super explicite là... Si besoin d'éclaircissement n'hésitez pas !
    (Si besoin du code aussi je peux le filer sans problème)

    Merci, merci !
    TeqPaf

  2. #2
    Invité(e)
    Invité(e)
    Par défaut
    Bonjour,
    Citation Envoyé par Tequilapaf Voir le message
    Est il possible en C de parcourir toutes ma DLL et de trouver toutes les fonctions présentes afin d'appliquer un modèle?
    Non, pas de façon automatique.

    Une solution serait de disposer d'un fichier header (.h) et d'un fichier .lib ou .def pour que ton compilateur s'occupe de l'édition des liens (ce qui impose d'avoir pile.dll toujours présent au démarrage de ton application).

    Ce que tu cherches à faire est de l'introspection la réflexion (je crois), mais cela n'existe pas en C.

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 70
    Points : 52
    Points
    52
    Par défaut
    Merci pour ta réponse.

    je ne peux pas considérer un fichier .dll comme un fichier texte et faire une recherche simplement en utilisant les outils des fichiers texte...

    Exemple : fopen, fgets et puis recherche de la chaîne "Function" et puis bidouiller pour avoir mon prog qui cherche dynamiquement toutes les fonctions présentes dans la dll.

    TeqPaf

  4. #4
    Invité(e)
    Invité(e)
    Par défaut
    je ne peux pas considérer un fichier .dll comme un fichier texte et faire une recherche simplement en utilisant les outils des fichiers texte...
    Tu peux si tu connais le format PE.

    Ton besoin est peut-être simplement dependency walker ?

    Sinon, tu peux regarder de ce côté là : http://www.codeproject.com/KB/DLL/Ex..._Function.aspx

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2009
    Messages : 70
    Points : 52
    Points
    52
    Par défaut
    Merci pour ces liens... Ca a l'air de coller avec ce que je fais.
    Je vais me pencher sur ces derniers et faire un retour ici pour vous donner plus d'infos !
    Dans tous les cas merci beaucoup mabu.

    TeqPaf

  6. #6
    Membre expérimenté Avatar de 10_GOTO_10
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    885
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 885
    Points : 1 522
    Points
    1 522
    Par défaut
    Ce que tu cherches est peut-être la fonction ImageDirectoryEntryToDataEx ? (avec le flag IMAGE_DIRECTORY_ENTRY_EXPORT)

Discussions similaires

  1. Outil pour rechercher des class dans une Dll
    Par Jimmy_S dans le forum ASP.NET
    Réponses: 3
    Dernier message: 09/01/2008, 12h38
  2. [BP7] Problème chargement de ressource dans une DLL
    Par Alcatîz dans le forum Turbo Pascal
    Réponses: 11
    Dernier message: 26/07/2003, 22h36
  3. [BPW]Problème de recherche dans une boîte liste
    Par Alcatîz dans le forum Turbo Pascal
    Réponses: 14
    Dernier message: 05/07/2003, 16h10
  4. PB avec "self" dans une dll
    Par DiJiRiDouS dans le forum Langage
    Réponses: 2
    Dernier message: 21/02/2003, 10h32
  5. [VB6]Passage d'un tableau dans une DLL écrite en delphi
    Par flash dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 20/09/2002, 11h15

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