Phänomen beim kopieren eines CString in char*
-
Hallo zusammen,
ich versuche seit Stunden folgende Zeilen in Embedded Visual C++ zum Laufen zu bekommen (in Visual Studio 6 geht's). Nach dem kopieren in chl enthält chl immer genau nur das erste Zeichen des CString. Vielleicht hat ja jemand eine Idee, ich bin gerade am verzweifeln:
CString csMyString("abcdefg"); char* chl = new char[200]; //genug Platz sollte jetzt reserviert sein //pointer auf den CString char *p = new char[csMyString.GetLength()+1]; //kopie anlegen, damit ich nicht auf dem eigentlichen CString arbeite char *pp = new char[csMyString.GetLength()+1]; p = (LPSTR)(LPCTSTR)csMyString; strcpy(pp, p); //anhängen des CString an chl (da sollen später noch weitere CStrings dran..) strncat(chl, pp, strlen(pp));Danke im voraus
-
Wird wohl am UNICODE in der neuen Version liegen. Such mal danach, dann solltest du einiges finden. Auf jeden Fall musst du entweder Unicode deaktivieren (schlecht) oder deine Anwendung umschreiben, also statt char TCHAR, um jeden String ein _T() usw...
Gruß Brainiac
-
Hi Brainiac,
Danke erst mal, das mit dem umschreiben der Anwendung kommt nur mittelfristig als Lösung in Frage. Noch eine weitere Frage: wie deaktiviere ich denn die Verwendung von UNICODE? Ist das eine Compiler Flag oder gibts da einen Schalter (den ich noch nicht gefunden habe) in den Settings?
Gruß
heimer13
-
heimer13 schrieb:
Hi Brainiac,
Danke erst mal, das mit dem umschreiben der Anwendung kommt nur mittelfristig als Lösung in Frage. Noch eine weitere Frage: wie deaktiviere ich denn die Verwendung von UNICODE? Ist das eine Compiler Flag oder gibts da einen Schalter (den ich noch nicht gefunden habe) in den Settings?
Das Standard-Text-Format auf den mobilen WinCE-Geräten ist UNICODE!
Mit der Funktion mbstowcs bzw. wcstombs kannst du zwischen Unicode und char hin- und herkonvertieren!
Aber CString wird immer mit UNICODE arbeiten und die meisten API-Funktionen erwarten UNICODE!
-
heimer13 schrieb:
Hi Brainiac,
Noch eine weitere Frage: wie deaktiviere ich denn die Verwendung von UNICODE? Ist das eine Compiler Flag oder gibts da einen Schalter (den ich noch nicht gefunden habe) in den Settings?'Projekt'->Eigenschaftenseiten->Allgemein->Projektstandards->Zeichensatz