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

Windows Discussion :

Probleme d'importation de dll C++


Sujet :

Windows

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15
    Points : 9
    Points
    9
    Par défaut Probleme d'importation de dll C++
    Salut a tous,

    Je n'ai pas l'habitude d'utiliser des DLL et j'ai besoin de quelques infos
    Apres avoir lu l'article suivant :
    http://lfe.developpez.com/DLL/
    (particulierement le chapitre 6. de l'article)

    je me suis demande, pourquoi peut on loader dynamiquent (avec un LoadLibrary("my.dll")) une dll comportant des fonctions, alors que avec des classes on doit utiliser les .a ou .lib (et donc ne pas utiliser la dll dynamiquement??) ?

    une autre question, plus generale sur les dll, meme si on fait comme decrit dans le chapitre 6. de l'article, importer une classe avec le .lib et compiler,
    pourrat on changer le code de la dll et juste mettre a jour le fichier .dll sans forcement recompiler le projet qui utilise la dll (bien evidement en modifiant la dll de maniere a ce que les classes de la nouvelles dll et les instanciations dans l'appli restent coherentes) ?

    merci d'avance de vos reponses,

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

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 381
    Points : 41 582
    Points
    41 582
    Par défaut
    1. C'est simple : Tu m'expliquera comment instancier une classe, appeler un constructeur, des méthodes virtuelles, à partir d'un simple GetProcAddress()...
      Si tu veux utiliser des classes dynamiquement, tourne-toi vers COM, qui fait ça avec quelques limitations: Le constructeur est caché, et toutes les fonctions sont virtuelles.
    2. J'aurais cru que oui, mais l'expérience a montré que ce n'était pas toujours le cas, du moins pour une DLL liée avec un .a/.lib

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    15
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15
    Points : 9
    Points
    9
    Par défaut
    merci pour la reponse

    1. en effet, mais je pensais qu'il y avait un equivalent de getprocaddress() pour faire un truc du genre _instanciation de la classe dans la memoire de la dll, et retourne un pointeur du l'objet en question_

    2. a mince :/ donc le seul moyen c'est d'utiliser que des fonction wrapper de mes classes et du coup perdre un paquet d'avantage quand meme.

    merci encore pour tes reponses,
    a+

Discussions similaires

  1. Probleme d'importation DLL
    Par midou256 dans le forum Windows Mobile
    Réponses: 0
    Dernier message: 25/07/2011, 14h59
  2. [debutant] Probleme d'import d'une dll
    Par vorhax dans le forum Windows Forms
    Réponses: 3
    Dernier message: 24/04/2007, 17h43
  3. probleme d'import de fichier txt avec des tab
    Par lecureuil dans le forum Access
    Réponses: 4
    Dernier message: 23/08/2005, 19h22
  4. Problemes d'importation depuis excel
    Par KANCRENAZ dans le forum Access
    Réponses: 3
    Dernier message: 17/02/2005, 09h57
  5. [FLASH MX2004] Importer une dll
    Par Fry dans le forum Flash
    Réponses: 4
    Dernier message: 07/01/2005, 10h54

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