CString in Char* umwandeln?

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!!!