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

Visual C++ Discussion :

utiliser une dll en C++


Sujet :

Visual C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre �clair�
    Homme Profil pro
    Chercheur en informatique
    Inscrit en
    Juin 2008
    Messages
    522
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de D�me (Auvergne)

    Informations professionnelles :
    Activit� : Chercheur en informatique

    Informations forums :
    Inscription : Juin 2008
    Messages : 522
    Par d�faut utiliser une dll en C++
    Bonjour

    J'amerai savoir comment inclut-on les dll dans un projet en C++.
    L'id�e serait d'utiliser aussi des dll en plus-in donc inclure aussi des dll si seulement elles existent. Comment doit-on le sp�cifier dans le code.

    J'aurait la m�me question aussi mais dans un projet C++/CLR .

    raphchar

  2. #2
    R�dacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par d�faut
    Bonjour,
    Un chargement dynamique de DLL se fait par LoadLibrary/GetProcAdress.

  3. #3
    R�dacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en s�curit�
    Inscrit en
    Mai 2007
    Messages
    11 517
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 62
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Consultant en s�curit�
    Secteur : High Tech - Op�rateur de t�l�communications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par d�faut
    Citation Envoy� par 3DArchi Voir le message
    Bonjour,
    Un chargement dynamique de DLL se fait par LoadLibrary/GetProcAdress.
    Sans oublier le FreeLibrary() quand on n'a plus besoin de la DLL
    Raymond
    Vous souhaitez participer � la rubrique R�seaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs syst�me et r�seau � configurer leurs �quipements SNMP r�seau.
    e-verbe Un logiciel de conjugaison des verbes de la langue fran�aise.

    Ma page personnelle sur DVP
    .

  4. #4
    Membre �m�rite
    Avatar de Ange_blond
    Homme Profil pro
    Ing�nieur d�veloppement en 3D temps r�el
    Inscrit en
    Mars 2007
    Messages
    902
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement en 3D temps r�el
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 902
    Par d�faut
    En utilisant les heritages, les variables statiques et le load dynamic, on peut se passer des getProcAdress.

    si la DLL impl�mente une classe qui herite d'une classe d�clar�e dans un core, et que :
    * dans la dll il y a un membre static
    * dans le core il y a la d�claration du membre static avec dans le constructeur une mise en m�moire (pushbask dans une liste ou similaire) de l'element qui vient d'etre construit ...

    alors au chargmeent de la DLL, automatiquement ta variable static sera impl�ment�e, le constructeur appell� dans le core, et donc dans le core tu aura ton instance de classe de ta DLL.

    Test� et approuv�.
    Necessite par contre quelques am�nagements : heritage, m�thodes virtuelles, code dans la DLL et dans le core, DLL qui d�pend donc du core pour compiler et enfin, dans le cs d'un singleton qui est un registre pour gerer les dll dynamiques, il faut que le core soit aussi une lib....

    Mais dans certains cas (dans le mien) c'est tres pratique.

  5. #5
    R�dacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par d�faut
    Citation Envoy� par Ange_blond Voir le message
    En utilisant les heritages, les variables statiques et le load dynamic, on peut se passer des getProcAdress.

    si la DLL impl�mente une classe qui herite d'une classe d�clar�e dans un core, et que :
    * dans la dll il y a un membre static
    * dans le core il y a la d�claration du membre static avec dans le constructeur une mise en m�moire (pushbask dans une liste ou similaire) de l'element qui vient d'etre construit ...

    alors au chargmeent de la DLL, automatiquement ta variable static sera impl�ment�e, le constructeur appell� dans le core, et donc dans le core tu aura ton instance de classe de ta DLL.

    Test� et approuv�.
    Necessite par contre quelques am�nagements : heritage, m�thodes virtuelles, code dans la DLL et dans le core, DLL qui d�pend donc du core pour compiler et enfin, dans le cs d'un singleton qui est un registre pour gerer les dll dynamiques, il faut que le core soit aussi une lib....

    Mais dans certains cas (dans le mien) c'est tres pratique.
    Modulo un bon plat de spaghetti

  6. #6
    Membre �m�rite
    Avatar de Ange_blond
    Homme Profil pro
    Ing�nieur d�veloppement en 3D temps r�el
    Inscrit en
    Mars 2007
    Messages
    902
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 40
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations professionnelles :
    Activit� : Ing�nieur d�veloppement en 3D temps r�el
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 902
    Par d�faut
    Oui mais on gagne en utilisation :

    les getProdAdress premettent la communication uniquement avec des types du C ... (double d�claration de classe dans le cas o� on veut balader une instance, pas de std::string, ...)
    l� on communique direct avec l'instance sans autre restriction.

    Chacun choisis le plus adapt� � ses bseoins, dans mon cas c'est tout vu

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. [JNI] Difficult�s pour utiliser une DLL
    Par etiennegaloup dans le forum Entr�e/Sortie
    R�ponses: 10
    Dernier message: 15/08/2005, 21h29
  2. [Windows]utiliser une dll c# en java
    Par dude666 dans le forum API standards et tierces
    R�ponses: 3
    Dernier message: 01/07/2005, 02h19
  3. R�ponses: 7
    Dernier message: 13/01/2005, 10h30
  4. [DLL] utiliser une DLL a partir d' une DLL et un .def
    Par venomelektro dans le forum MFC
    R�ponses: 9
    Dernier message: 07/12/2004, 14h01

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