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 :

transformer Lib C++ en DLL


Sujet :

C++

  1. #1
    Membre confirm� Avatar de dsolheid
    Inscrit en
    D�cembre 2007
    Messages
    141
    D�tails du profil
    Informations personnelles :
    �ge : 50

    Informations forums :
    Inscription : D�cembre 2007
    Messages : 141
    Par d�faut transformer Lib C++ en DLL
    Bonjour � tous,

    Je cherche (pas trouv� de r�ponse simple) � cr�er une DLL � partir d'une Lib C++.


    Ensuite, utiliser cette DLL dans des scripts VB (pour automatisation de test)

    J'ai une lib c++ (avec source) qui se construit correctement.

    Dans VS 2005, je peux voir comme propri�t�s du projet :

    Static Library (.lib)
    Use Standard Windows Libraries
    Not Using ATL

    Comment transformer cette lib en DLL ?
    Via un autre projet ? (car j'ai tj besoins de la lib) ...

    Quelle type de DLL choisir, etc ...

    D'avance merci, ...


    Dieter

  2. #2
    Membre �prouv�
    Profil pro
    Inscrit en
    Ao�t 2003
    Messages
    159
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Ao�t 2003
    Messages : 159
    Par d�faut
    Bonjour,

    le plus simple est de commencer par cr�er un nouveau projet de type DLL:
    de m�moire, nouveau projet->win32->DLL..
    Et rajouter les fichiers sources.
    FAQ: http://cpp.developpez.com/faq/vc/?page=DLL#MakeDynDll

  3. #3
    Membre �prouv�
    Profil pro
    Inscrit en
    F�vrier 2004
    Messages
    1 825
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : F�vrier 2004
    Messages : 1 825
    Par d�faut
    Je l'ai fait il n'y a pas longtemps, et effectivement c'est plut�t d�licat.

    Ce que j'ai fait, c'est d'abord conna�tre les "r�gles" de d�veloppement d'une DLL :
    - Commencer par d�terminer ce que tu veux exposer
    - Savoir compiler dans la DLL les objets/fonctions template s'il y en a
    - Limiter les d�pendances dans les inclusions qu'aura � faire le projet utilisateur

    Tu dois d�terminer la r�ponse � la premi�re question
    Ensuite, pour les objets/fonctions templates, tu peux proposer des ent�tes de fonctions, toujours templates dans les .h, puis les impl�menter dans le .cpp. R�p�ter les fonctions pour chaque types template est long, donc j'ai fait une macro permettant de g�n�rer les fonctions/classes comme �a :
    Ce qui revien � �a :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    // Exposé dans le .h
    template<class T> __declspec(dllexport) void Test();
     
    // puis la macro
    IMPL_DATA(Class) \
        template<> __declspec(dllexport) void Test<Class>() { \
    		FonctionDeLaDll<Class>(); }
     
    // Dans un .cpp de la DLL
    IMPL_DATA(CMyData)
     
    // Puis dans l'exe
    Test<CMyData>();
    Pour la derni�re question, il y a deux solution.
    - Soit proposer une interface, qu'utilisera le projet appelant, l'impl�mentation s'en voit cach�e, donc l'utilisateur reste ind�pendant des d�pendances utilis�es.
    - Soit le pImpl Ideom qui propose d'exposer un objet, qui encapsule un pointeur vers l'impl�mentation. Ainsi, dans le .h expos�, il n'y a qu'une pr�d�claration, donc pas d'inclusion. Fait des recherches l� dessus, en plus de la technique, �a explique les probl�matique de cr�ation d'une DLL.


    Connaissant �a, j'y suis all� � la barbar en mettant mon projet statique en DLL, et en r�glant au fur et � mesure les erreurs de link selon la m�thode la plus efficace des deux propos�es ci dessus

    Bon courage,

    A bient�t

Discussions similaires

  1. R�ponses: 1
    Dernier message: 30/06/2006, 12h50
  2. R�ponses: 3
    Dernier message: 07/04/2006, 11h27
  3. Probl�me pour linker la lib d'une Dll
    Par damien99 dans le forum Autres �diteurs
    R�ponses: 4
    Dernier message: 23/02/2006, 23h20
  4. R�ponses: 5
    Dernier message: 06/12/2005, 17h34
  5. R�ponses: 3
    Dernier message: 25/07/2005, 16h02

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