ANSI vs. UNICODE

24/09/2008 - 15:41 von Thomas Steinbach | Report spam
Hallo NG,

wie gehe ich generell eigentlich vor
um fuer beide Versionen (ANSI und UNICODE) zu
programmiren?

Ich nutze z.B. immmer das Macro _TEXT("text")
um hier eine automatische Konvertierung nach ANSI oder
UNICODE zu bekommen. Je nachdem wie das Proggi
kompiliert wird. Aber ich habe langsam den Verdacht
das dies auch nicht wirklich ausreicht und bin da unsicher.

Bei Funktionen werden doch auch automatisch entweder
die "function"A oder "function"W Version genommen oder
muss ich da auch noch etwas beruecksichtigen?

btw:
Mein Ziel ist es moeglichst kompatibel zu programmiren
sodass ich entweder mit MinGW oder einem anderen
Compiler, welche wohl nicht als UNICODE uebersetzen
koennen, als auch mit VS, bzw. VC als UNICODE uebersetzen
kann.

Thomas
 

Lesen sie die antworten

#1 René König
11/10/2008 - 14:03 | Warnen spam
Hallo!

Thomas Steinbach schrieb:
wie gehe ich generell eigentlich vor
um fuer beide Versionen (ANSI und UNICODE) zu
programmiren?



- Du verwendest für Texte immer schön das Makro TEXT oder _T
- Du verwendest den Typen TCHAR, bzw. LPTSTR
- Du passt beim Übergeben von Größen-Informationen auf, nicht einfach
nur sizeof zu verwenden

Um sicher zu gehen, übersetzt Du dann auch beide Versionen und testest
diese. Dann kannst gleich sehen, ob Du noch ein Detail übersehen hast. ;-)

Bei Funktionen werden doch auch automatisch entweder
die "function"A oder "function"W Version genommen oder
muss ich da auch noch etwas beruecksichtigen?



Bei Funktionen des API trifft das zu. Problematisch wird das eher mit
Funktionen der CRT, aber dafür hast Du dann ja tchar.h. Und falls Du
hier nicht aufpasst, fàllt es spàtestens beim Übersetzen auf. Da wird
Dir der Compiler Fehler ausspucken.


Gruß,
René

Ähnliche fragen