IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++/CLI Discussion :

Problème de link dans une application c++/CLI


Sujet :

C++/CLI

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2008
    Messages : 354
    Par défaut Problème de link dans une application c++/CLI
    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:
    \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
    Donc j'ai modifié la place de déclaration du vecteur, et je l'ai déclaré dans stdafx.h.
    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

    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
    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.
    Remarque :bibliothèque runtime LL de débogage multithread (/MDd)
    Merci pour vos aides

  2. #2
    Membre chevronné

    Homme Profil pro
    Inscrit en
    Octobre 2008
    Messages
    426
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 426
    Par défaut
    Salut,

    Si tu souhaite utiliser l'équivalent de vector mais en mode managé, tu peux utiliser array ( voir doc microsoft ici )

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Février 2008
    Messages
    354
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : Tunisie

    Informations forums :
    Inscription : Février 2008
    Messages : 354
    Par défaut
    merci bertry pour votre réponse mais j'ai pas besoin d'utiliser l'équivalent de vector. J'ai besoin d'utiliser le vector.
    Est ce qu'il y a une méthode pour utiliser le vector en managé?

  4. #4
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 487
    Par défaut
    RTFM

    http://msdn.microsoft.com/fr-fr/library/xhfb39es.aspx

    Vous ne pouvez pas directement inclure de type natif dans une classe managé.

    Utilisez un array et convertissez les éléments managés de ce tableau en objet non-managé au moment de l'initialisation d'un vector pour l'appel des primitives natives.

    Si les objets contenus dans ce tableau ne sont pas managés, pourquoi utiliser une classe managée ?

    Dans la documentation, il y a des indications sur comment gérer des références non managées dans du code managé.

Discussions similaires

  1. Problème de package dans une application console
    Par Patrick Seuret dans le forum C++Builder
    Réponses: 4
    Dernier message: 16/11/2010, 18h18
  2. problème d'authentification dans une application windows
    Par meryDev dans le forum Windows Forms
    Réponses: 4
    Dernier message: 15/07/2009, 17h05
  3. Problème d'affichage dans une application
    Par altaruk dans le forum Débuter
    Réponses: 3
    Dernier message: 26/01/2008, 18h32
  4. Problème de refresh dans une application modulaire
    Par TigrouMeow dans le forum Windows Forms
    Réponses: 8
    Dernier message: 11/10/2007, 15h06
  5. problème de socket dans une application win32
    Par deck_bsd dans le forum Windows
    Réponses: 5
    Dernier message: 20/01/2007, 18h32

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo