String zu LPARAM umwandeln
-
Hallo, wie kann man denn einen String in LPARAM umwandeln? Bei dem folgendem Aufruf bekomme ich es nämlich nicht gebacken.
string x = "Hallo"; SendMessage(g_hListBox, LB_ADDSTRING, 0, (LPARAM)x);So geht es dagegen:
SendMessage(g_hListBox, LB_ADDSTRING, 0, (LPARAM)L"Hallo");Gruß
Student83
-
string x = "Hallo"; SendMessage(g_hListBox, LB_ADDSTRING, 0, (LPARAM)x.c_str());
-
Leider kommt da immer noch Chinesisch bei raus. Das liegt wohl daran, dass es Unicode sein muss?
int iKey[64]; string sKey; for (int i=0;i<64;i++) { iKey[i]=rand(); //Hier muss noch der Integerwert in den String (oder //was auch immer) kopiert werden. } SendMessage(g_hListBox, LB_ADDSTRING, 0, (LPARAM)sKey);Vielleicht ist String doch nicht das optimale? Vielleicht wchar_t?
-
Dann nimm doch std::wstring.
-
Ok, und wie kann ich jetzt den einzelnen Zeichen des wstring Integer-Werte zuordnen?
-
Kommt drauf an, wie du dir das Ergebnis vorstellst...
-
Mittlerweile bin ich mir unsicher wie ich das überhaupt programmieren soll. Ich habe vor eine Funktion zu schreiben in der ein Passwort aus ASCII Zeichen generiert wird. Dieses Passwort soll dann von der Funktion in einer Zeichenkette zurückgegeben werden. Die zurückgegebene Zeichenkette wird dann von einer anderen Funktion mit SendMessage(...) an eine ListBox ausgegeben. Ich habe allerdings keine Ahnung welche Datentypen ich verwenden soll. Mit Unicode und Strings kenne ich mich noch nicht so gut aus.
-
Wenns nur um (alle) ASCII Zeichen geht musst kannst du den Rückgabewert von rand() in den Bereich 0-127 bringen.
std::wstring str; str.reserve( 64 ); for ( int i = 0; i < 64; ++i ) { str += random( 0, 127 ); // deine randomfunktion }
-
Danke, so funktioniert es.