String deklarierren und TextBox auslesen in Visual C++ 2005 Express



  • Hallo,

    ich steige gerade von Delphi auf Visual C++ um.

    Ich verwende Visual C++ 2005 Express.

    Ich möchte gern eine String Variable deklarieren, den Inhalt meiner Textbox auslesen und danach zeichenweise bearbeiten.
    Dabei scheitere ich schon am auslesen.

    Ich hab's versucht mit :

    string value1;
       value1 = ed_spg->Text;
    

    Beim Kompalieren bringt er mir immer folgende Fehlermeldung raus

    Es konnte kein Operator gefunden werden, der einen rechtsseitigen Operanden vom Typ 'System::String ^' akzeptiert (oder keine geeignete Konvertierung möglich)

    Was bitte mach ich denn falsch?

    Gruß Holger.

    😕



  • little_budda schrieb:

    Was bitte mach ich denn falsch?

    Ziemlich viel.

    Du postest im MFC-Forum Code der ANSI-C++ und C++/CLI in unzulässiger Weise vermischt.

    Also entweder

    String^ vaulue1 = ed_spg->Text;
    

    oder

    void MarshalString ( String ^ s, string& os ) // Aus dem MSDN
    {
      using namespace Runtime::InteropServices;
      const char* chars = 
        (const char*)(Marshal::StringToHGlobalAnsi(s)).ToPointer();
      os = chars;
      Marshal::FreeHGlobal(IntPtr((void*)chars));
    }
    
    ...
    MarshalString(ed_spg->Text, value1);
    ...
    

Anmelden zum Antworten