Konvertieren von char* nach wxString



  • Hallo,
    ich habe schon viel gesucht und gelesen, wie das Konvertiert werden könnte, aber ich bekomme es nicht hin (Habe ein Unicode Projekt).

    char* t = "Hello \0";
    wxString s;
    s.FromAscii(t);
    wxMessageBox(s);
    

    Wenn ich es so mache ist die Messagebox leer. 😞

    wxCSConv conv_ascii(_T("ISO-8859-1"));
    	wxString str(conv_ascii.cMB2WX(t));
    	str.wc_str(conv_ascii);
    

    So steht in der Messagebox "Hello" drin passt also. Aber kann man das nur über den Konstruktor machen, oder gibts dan auch ne Funktion z.B.

    wxCSConv conv_ascii(_T("ISO-8859-1"));
    wxWCharBuffer b = conv_ascii.cMB2WX(t);
    str.????(b) //mit welcher funktion geht das??
    

    Danke schon im voraus für alle Tipps.
    Gruß Dscho



  • dscho schrieb:

    ich habe schon viel gesucht und gelesen, wie das Konvertiert werden könnte, aber ich bekomme es nicht hin (Habe ein Unicode Projekt).

    Meinst du so

    wxString s;
    s = _T("Hallo");
    

    Allerdings solltest du deinen Code dann in Unicode schreiben.

    Jens



  • char *ch="Hallo";                      
    wxString str = wxString::FromAscii(ch);
    


  • Danke für die Antworten so geht es. Aber wo ist der Unterschied???

    char* t = "Hello \0";
    wxString s;
    s.FromAscii(t);
    wxMessageBox(s);    //Messagebox ist leer :confused: 
    
    s = wxString::FromAscii(t)
    wxMessageBox(s);    //in der Messagebox steht Hello :open_mouth:
    

    Gruß Dscho



  • s = wxString::FromAscii(t)
    

    methode FromAscii(t) wird ohne eine instanz der klasse wxString genutzt.
    deshalb auch "static" definiert.


Anmelden zum Antworten