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

MFC Discussion :

[DLL] utiliser une DLL a partir d' une DLL et un .def


Sujet :

MFC

  1. #1
    Membre averti Avatar de venomelektro
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2004
    Messages : 521
    Points : 316
    Points
    316
    Par défaut [DLL] utiliser une DLL a partir d' une DLL et un .def
    Bonjour,

    j ai recuperé un wrapper pour sql lite avec le code source , seulement ca ne se compile pas ni sous VS 7 2003 ni sous dev cpp 5 et personne ne semble pourvoir m aider la dessus

    donc je voudrais bien utiliser la dll deja compilé fournie avec le source.

    donc j ai une DLL et un .def et je voudrais savoir comment utiliser ca dans mon projet ( sans MFC ) ?

    car la DLL utilise DllMain et je ne me suis jamais servi de DLL comme ca , jusqu a present je ne suis uniquement servi de DLL avec des .lib linké avec un

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    pragma comment(lib,"lib.dll")

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Eh bien tu fais un LoadLibrary de ta dll puis tu fais des GetProcAdress pour obtenir des pointeurs sur les fonctions de ta dll.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Membre averti Avatar de venomelektro
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2004
    Messages : 521
    Points : 316
    Points
    316
    Par défaut
    ok je vais regarder ca

    bon courage pour les travaux

  4. #4
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    T'inquiète
    Si c'est OK, pense au bouton [Résolu] en bas à gauche de l'écran.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  5. #5
    Membre averti Avatar de venomelektro
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2004
    Messages : 521
    Points : 316
    Points
    316
    Par défaut
    Ok, et tant que j y suis ,

    c est pas des fonctions que j ai mais des classes , donc concretement comment ca se passe ?

    sinon pour le LoadLibrary et le GetProcAddress c ok

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    class SqliteDatabase: public Database {
    public:
    /* default constructor */
      SqliteDatabase();
    /* destructor */
      ~SqliteDatabase();
     
    .. etc ..

  6. #6
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Là, désolé, je ne peux pas te répondre, je connais surtout le C, pas le C++.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  7. #7
    Rédacteur
    Avatar de abelman
    Inscrit en
    Février 2003
    Messages
    1 106
    Détails du profil
    Informations forums :
    Inscription : Février 2003
    Messages : 1 106
    Points : 2 629
    Points
    2 629
    Par défaut
    C'est possible mais pas très simple à cause de la décoration des noms faite par le compilo C++
    Une solution

    http://www.codeguru.com/Cpp/W-P/win3...cle.php/c1443/

    Une autre c'est de générer un fichier MAP lors de la compilation (dans les options du projet).
    De reperer les noms décorés des fonctions que tu souhaites exporter dans le .map et de les ajouter au fichier def de ta dll.

    Pour les charger avec GetProcAddress, utilise les ordinaux. Et oui il faut connaitre les nombres ordinaux de chaque fonctions.

  8. #8
    Membre averti Avatar de venomelektro
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2004
    Messages : 521
    Points : 316
    Points
    316
    Par défaut
    ok,


    à ce que je vois ca risque d etre un peu fastidieux , je crois que je vais me chercher un autre wrapper...

    en fait cette dll est sensé faciliter le travail avec sqlite et au bout du compte j ai plus perdu du temps qu autre chose...

    Merci pour les renseignements en tout cas

  9. #9
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Points : 6 498
    Points
    6 498
    Par défaut
    Citation Envoyé par abelman
    Pour les charger avec GetProcAddress, utilise les ordinaux. Et oui il faut connaitre les nombres ordinaux de chaque fonctions.
    Tu utilises le .def obtenu en tapant la commande sous dos
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    impdef <destination>.def <madl>l.dll
    mais c'est un utilitaire Borland, je ne connais pas l'équivalent Visual C.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  10. #10
    Membre averti Avatar de venomelektro
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    521
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Avril 2004
    Messages : 521
    Points : 316
    Points
    316
    Par défaut
    finalement j ai changé de wrapper

    a la place de sql dataset , j ai pris celui la :

    http://dev.int64.org/sqlite.html

    celui la se compile nickel et produit une libraire statique .lib ce qui est bcp plus simple pour moi



    merci pour l aide

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

Discussions similaires

  1. Réponses: 4
    Dernier message: 10/10/2010, 11h46
  2. Réponses: 2
    Dernier message: 05/03/2010, 14h15
  3. Exporter et utiliser des fonction c à partir d'une dll
    Par alaeddine1983 dans le forum Windows
    Réponses: 10
    Dernier message: 10/07/2009, 12h12
  4. Réponses: 1
    Dernier message: 19/03/2008, 07h57
  5. Afficher une Fenêtre MDI à partir d'une DLL
    Par FredericB dans le forum C++Builder
    Réponses: 2
    Dernier message: 06/12/2005, 16h58

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