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 :

échange entre progamme et DLL


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Par défaut échange entre progamme et DLL
    Bonjour,

    Voila Je suis débutant et j'aimerai modifié un petit programme en isolant la partie com dans une dll, seulement cette partie que je souhaite isoler a besoin de classes que je souhaite laisser dans mon programme principale.
    Je voudrais donc savoir si le sens de communication se fai uniquement de la dll vers le programme ou bien si il peu se faire du programme vers la dll.

    plus precisement, comment puis-je faire connaitre à une dll des classes se situant dans le programme ?

  2. #2
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    241
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2005
    Messages : 241
    Par défaut
    Bonjour,
    si votre post parle de COM, je suppose que vous développez sous Windows.
    Normalement, votre programme principal doit générer une librairie statique qui devra être lier à votre DLL, afin que celle-ci puisse accéder aux classes du programme principal.
    Il vous faudra définir précisément les classes affectées, et utiliser le mot clef
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    _declspec(dllimport)  ou _declspec(dllexport)
    Je ne suis pas suffisamment à l'aise avec cette technologie pour vous en dire davantage.

    S. Desbois

  3. #3
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    La DLL ne pourra jamais connaître le nom des fonctions exposées par le programme de toute façon. Il faudra donc passer à la DLL des pointeurs de fonction, ou des objets de classes héritant d'une classe commune dont toutes les fonctions sont virtuelles.

    C'est ainsi que fonctionne COM/OLE, d'ailleurs: Une "Interface COM", ce n'est rien de plus qu'une classe dont toutes les fonctions sont virtuelles pures.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  4. #4
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Par défaut
    Donc en passant à la dll des pointeur sur des fonction du programme, celle ci pourra utiliser ces fonctions??

  5. #5
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 398
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 398
    Par défaut
    Oui.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  6. #6
    Membre averti
    Inscrit en
    Avril 2007
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 24
    Par défaut
    tout d'abord merci de votre aide !!!
    Pourriez vous me dire comment passer un pointeur de fonction a la dll?
    lors de lappelle du constructeur de l'interface de la dll ??

    encore merci!

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

Discussions similaires

  1. pb passage de données entre Appli et DLL
    Par Bobx dans le forum Delphi
    Réponses: 12
    Dernier message: 29/12/2006, 00h09
  2. Différences entre .lib et .dll
    Par oodini dans le forum Windows
    Réponses: 3
    Dernier message: 05/12/2006, 18h12
  3. échange entre select multiple
    Par mgemc2 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 21/08/2006, 15h15
  4. communication entre un projet DLL et une application
    Par ferry.jules dans le forum C++Builder
    Réponses: 95
    Dernier message: 22/05/2006, 20h06
  5. visualiser les points d'entrée d'un dll
    Par DenisLorrain dans le forum Windows
    Réponses: 4
    Dernier message: 06/07/2004, 00h20

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