Hallo,
Wie kann ich denn eine CString Variable „text“ in einen char* umwandeln?
Mit (char*)text geht es nicht.
Auch mit static_cast(text) klappt’s nicht.
Umgekehrt funktioniert es ja.
Vielen Dank schon mal im Vorraus!
Philipp
Hallo,
Wie kann ich denn eine CString Variable „text“ in einen char* umwandeln?
Mit (char*)text geht es nicht.
Auch mit static_cast(text) klappt’s nicht.
Umgekehrt funktioniert es ja.
Vielen Dank schon mal im Vorraus!
Philipp
Auch hallo.
Wenn Dir ein const char* reicht, bietet die Klasse CString den Operator LPCTSTR.
LPCTSTR(text) liefert einen Zeiger vom Typ LPCTSTR, das ist ein const _TCHAR*, und _TCHAR ist in nicht-UNICODE Umgebungen ein ‚char‘.
Wenn const char* nicht genug ist, benutze
LPTSTR CString::GetBuffer(int length)
.
Damit wird ein _TCHAR-Array der angegebene Länge reserviert, der String hineinkopiert und der Zeiger zurückgegeben. Platz für das Nullbyte hinzurechnen. Wenn Du fertig bist, unbedingt CString::ReleaseBuffer() aufrufen!
// example for CString::GetBuffer
CString s( "abcd" );
#ifdef \_DEBUG
afxDump
Gruß, Ralf
Viellen Dank für die ausführliche Antwort!!!