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 :

Utiliisation d'une classe d'une bibliothèque


Sujet :

C++

  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut Utiliisation d'une classe d'une bibliothèque
    Hello,

    J'utilise avec mon code une bibliothèque dont je ne connais pas a priori la version, et donc les classes & fonctions disponibles.

    Selon les versions, une fonction peut par exemple voir son nom changé. Je me sors de cette situation sous Windows en chargeant la DLL avec LoadLibraryA(), puis en recherchant la fonction avec GetProcAddress(). Si je récupère un NULL, j'essaye avec un autre nom de fonction. J'affecte le résultat à un pointeur de fonction, que j'utilise par la suite pour appeler la fonction.

    Mais comment faire si je dois écrire un code qui utilise des classes qui ne sont pas toujours offertes par la DLL ?

    Merci.

  2. #2
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Par défaut
    Enrobe la fonction externe dans une fonction a toi qui sera toujours la même.
    De cette manière ton code ne change pas sauf cette fonction qui "wrap" les fonctions externes.

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    C'est effectivement ce que je fais pour les fonctions.

    Mais si je dois déclarer un objet d'un type dont je ne dispose pas toujours, que faire ?

  4. #4
    Membre Expert
    Avatar de Klaim
    Homme Profil pro
    Développeur de jeux vidéo
    Inscrit en
    Août 2004
    Messages
    1 717
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur de jeux vidéo
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2004
    Messages : 1 717
    Par défaut
    Ben pareil pour une classe, non? Ca pose probleme de wrapper la classe dans une autre qui ne fournis que les membres que tu utilises dans ton application?

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    2 766
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 2 766
    Par défaut
    Désolé, je ne saisis pas trop.

    J'ai une bibliothèque maLib.dll. Mon code peut utiliser la version 1 ou 2 de cette DLL, mais on sait a priori pas laquelle.

    Soit la fonction maFonction(), qui n'existe que la version 2.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    typedef const char* (*pMyFunction)();
    pMyFunction myFunctionPtr = NULL;
     
    HMODULE myDll= LoadLibraryA("maLib.dll");
     
    myFunctionPtr = (pMyFunction )GetProcAddress(myDll, "maFonction");
    if (!myFunctionPtr )
    	...;
    else
    	...;
    À présent, si ce qui est à tester (et à utiliser) est la définition d'un type, et non d'une fonction, quel genre de code devrais-je avoir ?

    Je précise que je suis en fait en C, et que ce qui me préoccupe est en fait une structure, et non une classe.

Discussions similaires

  1. Eval d'une propriété d'une classe dans une classe
    Par bizet dans le forum ASP.NET
    Réponses: 4
    Dernier message: 28/10/2008, 09h43
  2. [POO] Utilisation d'une classe dans une classe !
    Par Okinou dans le forum Langage
    Réponses: 3
    Dernier message: 16/02/2006, 14h34
  3. Une classe dans une classe...
    Par Baquardie dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 30/09/2005, 19h36
  4. Réponses: 2
    Dernier message: 31/08/2005, 16h12
  5. Réponses: 4
    Dernier message: 17/03/2004, 17h24

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