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 :

Import d'une classe dans une DLL contenant des templates...


Sujet :

C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Inscrit en
    Septembre 2002
    Messages
    200
    D�tails du profil
    Informations forums :
    Inscription : Septembre 2002
    Messages : 200
    Par d�faut Import d'une classe dans une DLL contenant des templates...
    Bonjour a tous, ma question est tres simple. J'ai cr�� une DLL et j'utilise le m�canisme d'import / export suivant :

    si je suis dans ma DLL (je l'exporte donc) :
    #define MA_DLL_USE __declspec(dllexport)
    sinon si je suis hors de la dll (je l'importe depuis une autre) :
    #define MA_DLL_USE __declspec(dllimport)

    et donc ma classe :

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    class MA_DLL_USE MaClasse
    {
    ....
    };
    Donc ca me cr�e et m'exporte des fonctions de style 'C'.
    Hors il est impossible d'utiliser des templates avec des fonctions de style C bien sur.

    Sauf que ma fonction template, qui est dans ma classe, est bien sur priv�e et elle n'a pas besoin d'etre export� a la limite.
    D'ou ma question:

    Peut on exclure cette fonction de l'export et donc du "C-style cast" a l'interieur d'une classe __declspec(dllimport) ?

    Quand je compile ma DLL, ca fonctionne tres bien. Quand je l'inclus dans mon projet, et que je compile ce dernier (donc la dll est en mode import), ca ne fonctionne pas, ca me fait une erreur de compil du genre "impossible d'utiliser les templates avec une fonction de style C".

    Merci pour votre aide, a bientot.

    Alexandre.

  2. #2
    R�dacteur

    Avatar de Matthieu Brucher
    Profil pro
    D�veloppeur HPC
    Inscrit en
    Juillet 2005
    Messages
    9 810
    D�tails du profil
    Informations personnelles :
    �ge : 43
    Localisation : France, Pyr�n�es Atlantiques (Aquitaine)

    Informations professionnelles :
    Activit� : D�veloppeur HPC
    Secteur : Industrie

    Informations forums :
    Inscription : Juillet 2005
    Messages : 9 810
    Par d�faut
    Les classes export�es ne peuvent pas �tre style C, �a n'existe pas
    Si tu entoures la d�claration de fonctions d'un extern C, elles seront export�es au "format" C, � savoir pas de d�coration, donc pas de fonctions surcharg�es non plus.
    Pour les classes, elles sont export�es en "C++", il n'y a pas trop le choix.
    Ensuite, pour les classes templates, c'est encore plus chaud, mais �a ne marche une fois de plus pas avec du C standard - il choisirait comment quel objet utiliser pour l'instanciation ? -

Discussions similaires

  1. [C#]Acc�der � une methode dans une classe d'une DLL externe
    Par Greg34000 dans le forum Services Web
    R�ponses: 3
    Dernier message: 28/03/2013, 15h54
  2. R�ponses: 4
    Dernier message: 28/10/2008, 09h43
  3. [POO] dans une classe, appeler une fonction dans une m�thode
    Par arnaudperfect dans le forum Langage
    R�ponses: 3
    Dernier message: 26/08/2007, 23h04
  4. [POO] Utilisation d'une classe dans une classe !
    Par Okinou dans le forum Langage
    R�ponses: 3
    Dernier message: 16/02/2006, 14h34
  5. Une classe dans une classe...
    Par Baquardie dans le forum VB 6 et ant�rieur
    R�ponses: 7
    Dernier message: 30/09/2005, 19h36

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