Déclaration d'un array dans une dll

Résolu
TreCool0 Messages postés 16 Date d'inscription mardi 17 mars 2009 Statut Membre Dernière intervention 15 avril 2009 - 2 avril 2009 à 15:29
TreCool0 Messages postés 16 Date d'inscription mardi 17 mars 2009 Statut Membre Dernière intervention 15 avril 2009 - 3 avril 2009 à 09:05
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

cs_juju12 Messages postés 966 Date d'inscription samedi 3 avril 2004 Statut Membre Dernière intervention 4 mars 2010 4
2 avril 2009 à 21:53
*)   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...
3
TreCool0 Messages postés 16 Date d'inscription mardi 17 mars 2009 Statut Membre Dernière intervention 15 avril 2009
3 avril 2009 à 09:05
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!
0
Rejoignez-nous