Crush Geschrieben 27. Januar 2002 Geschrieben 27. Januar 2002 ganz kurz Thema Unicode: CString x=_TCHAR("hallo"); CString x3=_TXCHAR("hallo"); CString x2= _T("Hallo2"); CString y=L"Hallo"; _TINT z=5; Warum wird _T & L vom Preprozessor weggewischt, wann wird unicode erzeugt? _tint war mir unbekannt - ist da irgenwas anders als beim normalen int? Was unterscheidet einen _TXCHAR von einem _TCHAR? warum kann ich unter W98 kein Unicode-Programm mit #define _UNICODE erzeugen??? (ich muß es ja nicht laufen lassen können, oder?) Gibt es da einen Trick? Zitieren
hoagi Geschrieben 27. Januar 2002 Geschrieben 27. Januar 2002 Hast du den unicode-define vor der include der tchar.h gesetzt ??? Zitieren
Crush Geschrieben 27. Januar 2002 Autor Geschrieben 27. Januar 2002 tchar.h wird wohl schon vorher irgendwo vom Compiler included - oder ist vom Globalen Namespace her bekannt. Auf jeden Fall läßt sich alles auch ohne den Include genauso kompilieren. Der Define hat keine Auswirkung. Die ersten zwei Versionen funktionieren einwandfrei uns es kommt Unicode bei raus, aber bei L oder _T kommen immer normale Chars bei raus. Zitieren
mst Geschrieben 27. Januar 2002 Geschrieben 27. Januar 2002 Normalerweise kann man auch unter Windows 98 Unicode-Programme erstellen, (aber nicht laufen lassen) Es müssen nur die Unicode-Bibliotheken von Visual C++ installiert sein. Normalerweise ist diese Option deaktiviert. Zitieren
Crush Geschrieben 28. Januar 2002 Autor Geschrieben 28. Januar 2002 Also ich vermute die haben das so geplant, daß man L oder _T schreibt und dann oben einen define oder typedef auf WCHAR_T setzt. Zitieren
orsino Geschrieben 1. Februar 2002 Geschrieben 1. Februar 2002 Das Makro _UNICODE wird nur für die Header-Dateien der C-Laufzeitbibliothek verwendet, das Makro UNICODE dagegen für die Win32-Header-Dateien. Normalerweise müssen beide Makros definiert sein. Ich mache das immer in Projekt-Settings bei den Präprozessor-Einstellungen. In der MSDN habe ich folgendes gefunden: To compile code for Unicode, you need to #define UNICODE for the Win32 header files and #define _UNICODE for the C Run-time header files. These #defines must appear before the following: #include <windows.h> and any included C Run-time headers. The leading underscore indicates deviance from the ANSI C standard. Because the Windows header files are not part of this standard, it is allowable to use UNICODE without the leading underscore. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.