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.