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 :

Exporter un type de données dans une DLL


Sujet :

Visual C++

  1. #1
    Membre chevronné
    Avatar de kmaniche
    Inscrit en
    Janvier 2006
    Messages
    1 717
    Détails du profil
    Informations forums :
    Inscription : Janvier 2006
    Messages : 1 717
    Points : 1 884
    Points
    1 884
    Par défaut Exporter un type de données dans une DLL
    Bonjour,

    Pour résumer ce qui suit : Je veux exporter un type enum (inclu dans un .h tiers) vers une DLL, et pourvoir utiliser ses valeurs dans un autre programme appelant cette DLL.

    Le détail :
    Je developpe actuellement une nouvelle application utilisant certaines bibliothèque tierces.

    Le fichier de la solution se présente comme suit :
    1. squellete DLL : sous forme de namespace + classe (.h et .cpp)
    2. programme de Test : faisant appel à la DLL ;

    Dans une des bibliothèques il existe certain type de données cudaError sous forme d'énumération :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    enum cudaError
    {
    cudaSuccess                           =      0,
    cudaErrorMissingConfiguration         =      1,
    cudaErrorMemoryAllocation             =      2,
    cudaErrorInitializationError          =      3,
    ...
    ...
    };
    Mon problème est que je n'arrive pas à exporter ce type de données cudaError, ma tentative est la suivante :
    1. Dans le fichier .h, en dehors de définition de la classe, je fais :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    typedef enum __declspec(dllexport) cudaError myCudaError  ;
    2. Dans le programme de test de la DLL je fais :
    Le problème vient quand je veux initialiser la variable errTest avec l'une des valeurs de enum (voir plus haut) ;

    Avec ceci,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    myCudaError errtest ;
    errTest = myCudaError.cudaSuccess ;
    j'ai une erreur
    error C2228: la partie gauche de '.cudaSuccess' doit avoir un class/struct/union
    et avec ceci ,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    myCudaError errtest ;
    errTest = cudaSuccess ;
    le message est le suivant :
    error C2065: 'cudaSuccess'*: identificateur non déclaré
    Comment puis-je faie ?

    Je vous remercie par avance.
    Les règles Les cours La fonction rechercher

    N'oubliez pas de mettre en et de voter.

    La terre n'est pas un héritage de nos parents, mais un emprunt que nous faisons à nos enfants. La protection de notre environnement est la responsabilité de tous. Ne reculez plus devant l'urgence, agissez !

  2. #2
    Inactif  

    Homme Profil pro
    Ingénieur test de performance
    Inscrit en
    Décembre 2003
    Messages
    1 986
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur test de performance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2003
    Messages : 1 986
    Points : 2 605
    Points
    2 605
    Par défaut
    Bonjour.

    error C2228: la partie gauche de '.cudaSuccess' doit avoir un class/struct/union
    Je ne suis pas certain que l'on puisse exporter des enum. En général, l'enum est définit dans un .h à inclure pour tous les types d'application.

  3. #3
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 369
    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 369
    Points : 41 519
    Points
    41 519
    Par défaut
    Je rejoins Moldavi, une enum (hors Framework .Net) c'est juste des définitions dans un fichier d'en-tête, le linker ne la voit jamais.
    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.

Discussions similaires

  1. Changement types de données dans une requete SQL ACCESS
    Par Moutonstar dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 20/11/2008, 12h14
  2. Réponses: 2
    Dernier message: 14/06/2007, 14h11
  3. Type de données dans une table
    Par skandaboy dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 29/03/2007, 14h15
  4. Réponses: 3
    Dernier message: 07/02/2006, 13h26
  5. Vérification du type de données dans une procédure stockée
    Par biroule dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 16/09/2004, 11h20

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