Bonjour,
J'ai développé une application C++/CLI (winforms).
Je veux utiliser le std::vector dans mon application. De plus j'ai besoin d'utiliser une DLL win32.
Pour cette raison, j'ai modifié la propriété suivante: Propriétés de configuration->général->prise en charge de CLR: /clr.
Le problème maintenant est que lorsque je veux ajouter un vecteur de double (std::vector<double> a) comme une variable globale (c'est à dire on déclare le vecteur dans la classe Form1.h dans la partie où on a déclaré les boutons, les variables globales).
lorsque j'ai fait comme ça l'erreur suivante m'apparait:
Donc j'ai modifié la place de déclaration du vecteur, et je l'ai déclaré dans stdafx.h.\Form1.h(96) : error C4368: impossible de définir 'a' comme membre de 'Test::Form1' managé*: les types mixtes ne sont pas pris en charge
Après la déclaration, j'ai aucune erreur dans la compilation.
Lorsque je veux appliquer des opérations sur le vecteur, par exemple lorsque je faits un push_back au vecteur, je trouve une erreur de link
D'après ce que j'ai trouvé dans l'internet, il faut utiliser System::Collections::Generic::List mais le problème que j'ai besoin d'utiliser std::vector et pas liste.
stdafx.obj : error LNK2005: "class std::vector<double,class std::allocator<double> > a" (?a@@3V?$vector@NV?$allocator@N@std@@@std@@A) déjà défini(e) dans Test.obj
Remarque :bibliothèque runtimeLL de débogage multithread (/MDd)
Merci pour vos aides
Partager