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 :
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 :
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,
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 ,
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.
Partager