String^ ,string und char*



  • Hi ich hab folgende Fragen auf die ich leider keine antwort finde (was vorallem daran liegen könnte das google keine sonderzeichen mag...)

    Nummer 1: was bedeutet eigentlich das ^ bei einer deklaration also z.B. Objekt^ neu;

    Nummer 2: viele funktionen (vorallem die Windows Forms Geschichten) wollen ein String^, wie erzeuge ich mir den wenn ich ein normalen string habe und wo liegt eigentlich der unterschied (bezug zu Frage 1). Ich hab es wie in der msdn beschrieben mit String^ neu (wchar_t*)probiert, aber da meckert er " 'wchar_t *[256]' kann nicht in 'System::String ^' konvertiert werden". Wichtig ist das ich den string noch nicht fest habe, er also nicht konstant ist sondern erst zur Laufzeit bestimmt wird. Ich hab bis jetzt nur lösungen für const wchar_t * gefunden ...

    Nummer 3: kann ich die ganze Sache umgehn und irgendwie mit einfachen strings arbeiten?

    schonmal danke für die antworten



  • Du bist im falschen Forum. Du wolltest nach C++/CLI 😉



  • oh tatsache, vieleicht kanns ein netter admin ins richtige schieben ..
    alternativ nehm ich auch hier antworten entgegen 🙂



  • Dieser Thread wurde von Moderator/in volkard aus dem Forum C++ (auch C++0x) in das Forum C++/CLI mit .NET verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • Nummer 1: was bedeutet eigentlich das ^ bei einer deklaration also z.B. Objekt^ neu;

    Das ^ bedeuted managed Handle.
    http://www.codeproject.com/KB/mcpp/cppcliintro01.aspx

    Nummer 2: viele funktionen (vorallem die Windows Forms Geschichten) wollen ein String^, wie erzeuge ich mir den wenn ich ein normalen string habe und wo liegt eigentlich der unterschied (bezug zu Frage 1). Ich hab es wie in der msdn beschrieben mit String^ neu (wchar_t*)probiert, aber da meckert er " 'wchar_t *[256]' kann nicht in 'System::String ^' konvertiert werden". Wichtig ist das ich den string noch nicht fest habe, er also nicht konstant ist sondern erst zur Laufzeit bestimmt wird. Ich hab bis jetzt nur lösungen für const wchar_t * gefunden ...

    Einen String kannst Du so erzeugen und zusammensetzen:

    String^ s = L"Test";
    s += L"27";
    

    Wenn Dir das nicht weiterhilft bei deinem Problem musst Du den Code zeigen der Probleme macht.

    Hier noch was aus der FAQ:
    http://www.c-plusplus.net/forum/158664
    http://www.c-plusplus.net/forum/158666

    Nummer 3: kann ich die ganze Sache umgehn und irgendwie mit einfachen strings arbeiten?

    Definiere einfache Strings.. aber anyway, warum willst Du das? Nutze System::String und die String Literale und gut ist.

    Zu guter Letzt noch:
    http://www.c-plusplus.net/forum/263084



  • ich danke dir 🙂



  • Ich denke, vor allem der letzte Link, den theta gepostet hat, ist extrem wichtig. Hier ist er nochmal. Den solltest du unbedingt lesen und dir zu Herzen nehmen...


Anmelden zum Antworten