Déclaration d'un array dans une dll

[Résolu]
Signaler
Messages postés
16
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
15 avril 2009
-
Messages postés
16
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
15 avril 2009
-
Bonjour,

J'essaye d'écrire une DLL Win32 en Visual C++ avec Visual C++ 2008 Express.

Une des fonctions de cette dll va devoir renvoyer un array de String, elle a donc l'en-tête suivante :

extern array<String ^> ^ __stdcall fillList(const IID & rclsid)

Malheureusement, cela ne fonctionne pas, et je reçois les erreurs suivantes :

erreur de syntaxe : absence de ';' avant '<'
error C4430: spécificateur de type manquant - int est pris en compte par défaut. Remarque : C++ ne prend pas en charge int par défaut
error C2143: erreur de syntaxe : absence de ';' avant '{'
error C2447: '{' : en-tête de fonction manquant (liste formelle à l'ancien format ?)

De plus, j'utilise DirectShow, et aucune des classes utilisées par DirectShow ne sont reconnues par le compilateur.

Quelq'un pourrait-il m'aider?

Merci d'avance!

2 réponses

Messages postés
966
Date d'inscription
samedi 3 avril 2004
Statut
Membre
Dernière intervention
4 mars 2010
4
*)   as-tu bien inclus tous les headers et librairies?
*)   apparemment tu es en managé, as-tu bien le type de projet adéquat?
*)   pour exporter une fonction c'est __declspec(dllexport) et non extern.
*)   si aucune classe n'est reconnue c'est qu'il manque header ou lib ou les deux, y a pas de miracle.

accessoirement je ne sais pas d'où vient cette classe array mais est-elle par hasard dans un espace de nommage particulier? Du genre std::String etc...
Messages postés
16
Date d'inscription
mardi 17 mars 2009
Statut
Membre
Dernière intervention
15 avril 2009

Effectivement, c'était un problème d'inclusion de libraires.

De plus, il n'y avait pas de prise en charge du Common Language Runtime lors de la compilation, ce qui générait également des erreurs.

Merci!