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 :

typage des string avec Visual Studio 2010 et C++/CLI


Sujet :

C++/CLI

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut typage des string avec Visual Studio 2010 et C++/CLI
    Bonjour
    J'ai codé
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    public ref class OpenAFile : public System::Windows::Forms::Form
    	{
    	private: 
    	    System::Windows::Forms::Button^  button3;
    		Form^ form1;
    	public:
    		std::string sFileToOpen;
    Je suis en mode managé mais la documentation me dit que j'ai le droit de faire cohabiter du code managé et du code natif.
    le compilateur n'as pas la même interprétation:
    OpenAFile.h(7): error C2039: 'string'*: n'est pas membre de 'std'
    OpenAFile.h(7): error C2146: erreur de syntaxe*: absence de ';' avant l'identificateur 'sFileToOpen'
    OpenAFile.h(7): 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
    OpenAFile.h(7): 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
    ce serait d'avoir un module qui accepte le type string
    note au sujet de la première erreur que j'ai le même résultat sur les autres erreurs si je déclare simplement string.

  2. #2
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 836
    Par défaut
    As-tu pensé à inclure string?

    Un petit #include <string> me semble plutôt opportun dans ton code.

  3. #3
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut Bonjour
    Le résultat ci dessus est acquit avec l'include string
    ça marche mieux avec deux includes stdio.h et string mais dans ce cas il dit qu'il n'arrive pas à gérer une chaine string en mode managé, et le coach C++/CLI dit qu'il sait gérer les deux.

  4. #4
    Membre éclairé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    836
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Décembre 2008
    Messages : 836
    Par défaut
    Le string en managé est peut-être inclus dans un autre espace de nommage?
    Je ne connaît pas C++/CLI donc je ne peux pas t'aider beaucoup plus...

    Si j'étais à ta place, j'irai vérifier dans les header pour comprendre ce qui se passe je pense.

  5. #5
    Membre extrêmement actif
    Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2008
    Messages
    1 022
    Détails du profil
    Informations personnelles :
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2008
    Messages : 1 022
    Par défaut Les donnée qui doivent être vues
    avec le C++/CLI il faut déclarer les données comme des données globales
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    std::string sFileToOpen;
    std::string sPathOfTheFile;
    std::string sDiskOfTheFile;
    namespace Test6 {
    	using namespace System;
    	using namespace System::ComponentModel;
    	using namespace System::Collections;
    	using namespace System::Windows::Forms;
    	using namespace System::Data;
    	using namespace System::Drawing;
    	using namespace System::IO;
        /// <summary>
    	/// Description résumée de OpenAFile
    	/// </summary>
    	public ref class OpenAFile : public System::Windows::Forms::Form
    	{
    	private: 
    		Form^ form1;
    	public:
     
    		OpenAFile::OpenAFile(void);
    		OpenAFile::OpenAFile(Form^ form1);
    		OpenAFile::~OpenAFile();
     
    		void Test6::OpenAFile::InitializeComponent(void);

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 482
    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 482
    Par défaut
    NON.

    Il ne faut pas mélanger les torchons et les serviettes.

    Dans des classes managées, vous ne devez utiliser que des classes managées.

    .NET dispose de la classe System::String, bien plus sympa que la classe std::string.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Faire des tests unitaires avec Visual Studio 2010
    Par Francis Walter dans le forum Visual Studio
    Réponses: 4
    Dernier message: 30/10/2014, 13h53
  2. Typage des données avec visual Studio 2010
    Par JeanNoel53 dans le forum C++/CLI
    Réponses: 10
    Dernier message: 07/05/2012, 15h46
  3. Réponses: 0
    Dernier message: 22/11/2011, 11h38
  4. Des getters er des Setters avec visual Studio 2005
    Par zghidi dans le forum Visual Studio
    Réponses: 9
    Dernier message: 27/02/2008, 13h37

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