char* in std::string
-
hallo, wie kann ich einen char* in einen string umwandeln. das problem: ich will den Text eines Fensters auslesen. GetWindowText erwartet als 2.Paramter einen char* bzw. LPSTR. Diesen Text will ich jetzt in einen string umwandeln....
-
char * t;
// t zeigt auf nen gültigen Speicher und hat den Titel bereits in sich
std::string FensterTitel(t);
std::string Titel = t;
-
Wenn jetzt aber der Fenstertitel z.B. 20 Leerzeichen (am Ende) enthält, kommt bei der zuweisung nur noch schrott raus.....
char *szOldWindowText; iTextLength = GetWindowTextLength(hwnd); szOldWindowText = (char*) malloc(iTextLength+1); GetWindowText(hwnd, (LPSTR) szOldWindowText,iTextLength+1); szWindowText = szOldWindowText;
-
Was fürn Typ ist denn szWindowText ?
Versuche es so:
#include <string> // <-------------- char *szOldWindowText; iTextLength = GetWindowTextLength(hwnd); szOldWindowText = new char[iTextLength+1]; GetWindowText(hwnd, (LPSTR) szOldWindowText,iTextLength+1); std::string szWindowText; // <<<<<-------------------- szWindowText = szOldWindowText;
Wenns das nicht war, beschreib Dein Problem noch mal genauer mit etwas mehr Quelltext.
-
GetWindowText(hwnd, (LPSTR) szOldWindowText,iTextLength);
-
Danke für die Tipps, es klappt jetzt, bzw. hat wohl auch schon vorher funktioniert. Das problem ist nur das der debugger als wert für den String nur Müll anzeigt z.B: %$& oder so was. Wieso kommt da nicht in der Überwachung der Text?
-
Hallo,
fals Du den VC verwendest schau mal hier:
http://groups.google.de/groups?hl=de&ie=ISO-8859-1&q=eestdstring&sa=N&tab=wg&meta=
-
Danke für den Tip....