LPCWSTR zu string für Listbox



  • Hallo zusammen,ich hab hier ein Problemm.Und zwar hab ich vor eine Listbox zu machen,wo einmal Namen stehen und daneben Zahlen.

    Die Namen sind in einer Klasse ,als LPCWSTR gespeichert und die Zahlen als double Werte.
    Am Ende muss ich das mit Sendmessage zu der Listox senden,auch als LPCWSTR.

    Dazu hab ich jetzt einen stringstream erstellt und dan die Zahlen reingetan,einen string daraus gemacht und mit c_str zur Listbox geschickt.Bei den Zahlen klappt auch alles ganz gut,nur wenn ich dann noch die Namen reinschiebe,dann bekomm ich nur ein Haufen Chinesische,etc. Zeichen in der Box.

    Wie kann ich das anders machen??

    if(Peers[i].Name)
    		  {
    		   stringstream ss;
    		   ss << Peers[i].Name;
    		   ss << "   ";
    		   ss << Peers[i].Note;
    		   string sss(ss.str());
    		   SendMessage(Namen,LB_ADDSTRING,NULL,(LPARAM)sss.c_str());
    		  }
    

    Danke



  • Erkundige dich vorher in google welcher datentyp LPCWSTR überhaupt ist.

    Google nach: what is LPCWSTR oder LPCWSTR stands for

    char * ist zb ein multibyte character

    Danach besuche diesen link:
    http://msdn.microsoft.com/en-us/library/0heszx3w(v=VS.100).aspx

    Das wissen über den typ LPCWSTR wirst du zukünftig sowieso brauchen, und lernen macht freude, mir jedenfalls!

    Schönen tag noch
    lg
    buntehaare



  • Das W in LPCWSTR steht für wchar_t - das sind Unicode-Strings, die nur bedingt mit "einfachen" Strings ausgetauscht werden können. std::stringstream und std::string arbeiten mit normalen char-Zeichenketten, aber sie haben auch noch Brüder namens std::wstringstream und std::wstring, die die selbe Funktionalität für wchar_t anbieten.


Anmelden zum Antworten