Konvertierung von CEdit in std::string!
-
sag es mir,wenn du wirklich Ahnung hast,
wie ich CString nach char * konvertiere!
Das kann auch ein einfacherer Weg sein,
mir einen Überblick zu geben.
-
Hättste mal in die FAQ geschaut:
CString zu char*Devil
-
devil81 hat bestimmt genug Ahnung haben!
Aber schau dir doch einfach mal CString genauer an fileicht findest du ja die Funktion selber?
Kleiner tip Fängt mit "Get" an.
mfg
-
Ich ? Ahnung ?
Wer sagt das ?
Ich programmiere erst seit 3 Jahren, bin also noch totaler Anfänger...Devil
-
Hast du dir meine Code geschaut? Kannst mir sagen,
wo ich genau Konvertierung CString in char* brauche.
Ich verstehe jetzt nicht mehr. soll ich zuerst CEdit
in CString dann in char* und danach in std::string
überführen. Wie soll ich alles in eineer Funktion
schaffen. Bitte helf mir. Ich komme nicht weiter!
-
std::string CBaseObject::EditTostring(const CEdit &edit) { CString strWindowText; edit.GetWindowText(strWindowText); std::string Tmp = strWindowText.GetBuffer(strWindowText.GetLength()); strWindowText.ReleaseBuffer(); return Tmp; }
Ohne Gewähr, da nicht getestet.
-
Hm, du scheinst ja wirklich noch ein totales Greenhorn zu sein...
Naja, mal das übliche grundprogramm kann ich dir empfehlen:
Henkes MFC Tutorials gut für einsteiger
bei www.mut.de kannst Visual C++ in 21 Tagen online lesen.Zu deinem Problem:
Du muss eine Membervariable(der Editbox) erstellen, die vom Typ CString ist, dies machst du im
Klassen assi.
Dann mit UpdateData() bzw. UpdateData(false) die Werte in die Variable einlesen, bzw. ausgeben.
Alternativ kannst du auch versuchen das CEdit mit GetWindowText direkt anzusprechen,
weis aber nicht ob das klappt, dann könntest du der Funktion evtl. direkt std::string übergeben.Devil
-
Danke sehr, es funktioniert!
-
Ich habe noch ne mögliche Code gefunden. Ich schreib hier weiter,
damit ich anderen helfe, fals jemand irgendmal braucht.
Code:std::string CBaseObject::EditToStandardString( const CEdit& edit) {
int const MAX_LENGTH = 255;
char buffer[MAX_LENGTH];
int length = edit.GetLine(0,buffer,MAX_LENGTH);
return std::string(buffer,length);
}
-
Das funktioniert aber nicht, wenn du ein Multilineeditfeld hast, deswegen ist mein Code die bessere Variante.
-
Ok, du hast Recht, aber mein Editbox hat nur eine Zeile.
Vielen Dank für alle Bemühengun!