CString in CFile schreiben

A

Alex braucht Hilfe

Hallo zusammen,

sehr einfaches Problem:
Ich will einen CString in ein CFile schreiben.. Hier mein Code:

CString m_strWayName;
CFile File;

/* hier noch File erstellen etc, klappt 100% alles */

m_strWayName = _T("Test");
File.Write(m_strWayName, m_strWayName.GetLength());

Dadurch erhalte ich folgende Ausgabe:
T e
In Hex: 0x54 0x00 0x65 0x00

Jemand eine Idee warum das so ist?

Viele Grüße, Alex
 
Schaut nach Unicode aus.
Jeder Buchstabe braucht nicht nur ein Byte, sondern zwei.
Unicode kannst du aber in den Projekteinstellungen ausschalten; oder das GetLength mit 2 multiplizieren und und...
 
Zuletzt bearbeitet:
Das man immer das Kinde gleich mit dem Bad ausschüttet.

Es macht durchaus Sinn UNICODE nicht abzuschalten - schon garnicht wegen
so einer Lappalie ;)

// schlechte lösung :-(
// File.Write(m_strWayName.GetString(), m_strWayName.GetLength()*sizeof(TCHAR));

Code:
CStringA  asciiString( m_strWayName );

File.Write(asciiString.GetString() , asciiString.GetLength());

GetString() ist nicht unbedingt notwendig, ist aber zuverlässiger.
 
Zurück