Konvertierung CStringW zu CString
-
Ich arbeite an einem Datenbankprojekt, wobei die Variablen als CStringW gespeichert sind. Die Funktion die ich benutze um Eingabefeldern die Variablen zuzuweisen verlangt aber Cstring. Lange Rede kurzer Sinn:
Weiß jmd. wie man CStringW in CString konvertieren kann??
gruß DR
-
http://www.koders.com/cpp/fid42B99A9F1E6B7894D87866BE2FB52F97D4C42DFF.aspx
WToA soll das glaub ich machen hatte aber keine Zeit des nachzugucken ...
-
1. CString ist in einem Unicode Projekt identisch mit CStringW!
2. In Einem MBCS Projekt ist CString aquivalent zu CStringA.
3. CStringA und CStringW haben normnalerweise entsprechende Konstruktoren die eine entsprechende Umwandlung direkt erlauben.// Sollte also imer gehen CString str(_T("XYZ"); CStringW strW(str); CStringA strA(str);
-
Danke für die Antworten, (D)Evils's Post hat mir geholfen:
Habe eine Funktion StrWToStr geschrieben:CString CTestDBView::StrWToStr(CStringW str)
{
CString ret;
for(int i = 0, j = str.GetLength(); i < j; i++)
ret += (TCHAR)(WORD)str[i];
return ret;
}gruß DR

-
Sorry! Dieser Code ist absoluter Murks!
MBCS Strings können auf diese Weise nicht in Unicode überführt werden. Spätestens beim Eurozeichen oder beim Paragraphen passiert hier Käse!Warum verwendest Du keinen direkten Konstruktor, oder den entsprechenden cthar Makro?
CStringW strW(L"1234"); CString str1(strW); // oder USES_CONVERSION; CString str2(W2T(strW); // oder CString str3(CW2T(strW);
-
dankeschön, habe meine Funktion umgebaut.

gruß DR