Ich versuche, eine Listbox mit C++ in Visual Studio zu füllen. Ich habe eine Reihe von Std: String und ich möchte sie verwenden. Meine Lösung scheint nicht zu funktionieren:Abrufen von Müll mit SendMessage zum Auffüllen einer Listbox
std::string label = "something";
char *buffer;
buffer = _strdup((label).c_str());
I geprüft und die Puffervariable enthält die korrekte Zeichenfolge, aber dann nenne ich Sendmessage
SendMessage(hwndList, LB_ADDSTRING, 0, (LPARAM)buffer);
Die List-Box wird bevölkert, aber anstelle von „etwas“ Ich sehe einige zufällige japanische Zeichen ...
Was passiert, wenn Sie 'SendMessageA' anstelle von' SendMessage' verwenden? – MikeCAT
es funktioniert !! Ich muss darüber nachforschen ... danke !! – rekotc
Das Code-Segment hat einen Speicherverlust von '_strdup', wenn es sich nur um den Beispielcode handelt. Außerdem ist der Aufruf "_strdup" nicht erforderlich. –