none
Aus der MSDN Hotline: std::string System::String^ type mismatch RRS feed

  • Allgemeine Diskussion

  • Hallo zusammen,
    heute wurde uns bei der MSDN Hotline unter anderem folgende Frage gestellt:
    Ich versuche in C++/CLI einer Textbox einen string zuzuweisen. Dabei erhalte ich vom Compiler die Fehlermeldung:
    cannot convert parameter 1 from "std::string" to "System::String^".
    Was habe ich falsch gemacht?

    Unsere Antwort bzw. unser Lösungsvorschlag darauf war:
    C++/CLI ist eine Sprache zweier Welten. C++/CLI ist ein ideales Werkzeug, um die Technologiegrenze zwischen managed und nativen Code zu überbrücken. Das setzt vorraus, dass C++/CLI sowohl mit der C++ Standard Bibliothek umgehen kann, als auch mit den Bibliotheken des .Net Frameworks. Das Ergebniss ist nicht nur für Programmieranfänger manchmal etwas unübersichtlich. So ist die std::string Klasse aus der nativen C++ Standard Bibliothek nicht zu verwechseln mit der managed System::String^ Klasse des .Net Frameworks. Die Textbox ist ebenfalls teil des .Net Frameworks und erwartet daher auch einen System::String^ und kann mit dem std::string nichts anfangen. Als Entwickler hat man nun zwei Möglichkeiten. Entweder man verwendet von Anfang an System::String^ oder man konvertiert den std::string in einen System::String^ bevor man ihn der Textbox zuweißt. Dies geht z.B. wie folgt:
    private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) {
        std::string text = "Hello, World!";
        textBox1->Text = gcnew String( text.c_str() );
     }
    


    Wir hoffen, vielen Besuchern der MSDN Foren durch das Posten dieses Problems und einer möglichen Lösung weiterhelfen zu können.

    Viele Grüße,
    Markus Klein
    MSDN Hotline für MSDN Online Deutschland

    Disclaimer:
    Bitte haben Sie Verständnis dafür, dass wir hier auf Rückfragen gar nicht oder nur sehr zeitverzögert antworten können.
    Bitte nutzen Sie für Rückfragen oder neue Fragen den telefonischen Weg über die MSDN Hotline: http://www.msdn-online.de/Hotline 
    MSDN Hotline: Schnelle & kompetente Hilfe für Entwickler: kostenfrei!

    Es gelten für die MSDN Hotline und dieses Posting diese Nutzungsbedingungen, Hinweise zu Markenzeichen sowie die allgemein gültigen Informationen zur Datensicherheit sowie die gesonderten Nutzungsbedingungen für die MSDN Hotline.
    • Verschoben Robert BreitenhoferModerator Montag, 28. Juni 2010 08:37 C++ (aus:Aus der MSDN Hotline: Häufig gestellte Fragen und deren Antworten)
    Freitag, 18. Dezember 2009 15:36