Breite Zeichencodes?
-
Guten Tag Allerseits!
Kennt sich jemand mit Unicode-Definitionen aus?(TCHAR.H)
Ich habe eine Definition die mir schwer zu schaffen macht
!
#define __T(x) x
Sie macht nicht das was ich will. Sie sollte doch nun aus allen 8-Bit-Bustaben-Strings 16-Bit-Buchstaben-Strings machen.Ich habe ein programm erstellt, das dies überprüfen kann.
#include <stdio.h> #include <wchar.h> //Hier kann auch _UNICODE definiert werden, für weitere und andere Definitionen #include <tchar.h> #define __T(x) x int main() { int i; int w_i; static char x[] = "Hello!"; static wchar_t w_a[] = L"Hello!"; char * p="Hello!"; wchar_t * w_p = L"Hello!"; int unicode; static wchar_t unicode_zeichen; i=strlen(p); w_i=wcslen(w_p); printf("Char mit einem Byte(ASCII-Code):\n"); printf("String: %s\n",x); printf("Anzahl Zeichen: %i\n",i); printf("Speicherplatz: %i\n\n", sizeof(x)); printf("Wchar_t mit zwei Bytes(Unicode):\n"); printf("String: "); wprintf(w_a); printf("\nAnzahl Zeichen: %i\n",w_i); printf("Speicherplatz: %i\n", sizeof(w_a)); getchar(); //Diesen Teil müsst ihr nicht beachten. while(1) { system("cls"); printf("Unicode: "); scanf("%i",&unicode); unicode_zeichen=unicode; wprintf(L"\n%c",unicode_zeichen); getchar(); getchar(); } }Bin für jede Antwort dankbar!
MFG Ed
-
Dieser Beitrag gehört nicht zum WinApi-Thema. Ich weiss...
Ich habe ihn ins WinApi-Forum geschrieben, weil ich mich mit dem Buch Windowsprogrammierung von Petzold beschäftige.
Die Definitionen auf Seite 35 funktionieren in meinem Prog nicht.Ich bin sicher ihr WinApifreaks kennt das Buch auswendig.

-
_T ergibt nicht in jedem Fall "breite" Zeichen. Es erfolgt je nach Build-Modell
(Unicode oder nicht) eine Expansion nach char oder wchar. Wenn du in jedem Fall
Unicode haben willst, musst du L"..." verwenden.