Veröffentlicht 29. März 200223 j hallo coder, ich arbeite gerade ein wenig mit der gdi+ und brauche dafür eine möglichkeit, auf einfachsten und schnellsten wege ein char* in ein wchar_t* zu casten. weiß vielleicht einer von euch wie ich das am einfachsten hinbekommen kann.
30. März 200223 j Wie bei jedem anderen cast auch: char *myChar; wchar_t *myWchar; myWchar=(wchar_t *)myChar; Allerdings solltest Dir sicher sein, dass der Cast an der Stelle auch erlaubt ist, da wchar_t und char eine unterschiedliche Groesse haben. Ein char ist 8 Bit gross, wchar_t ueblicherweise ein unsigned long. D.h. wenn Du eine Funktion aufrufst, einen Char-Pointer uebergibts und die Funktion an diese Stelle ein wchar_t schreibt, gibt es Probleme! Nic
30. März 200223 j Korrektur: Unicode ist 16 Bit groß und benötigt deshalb unsigned short bei Pentium. @Maddin: Gibt es schon eine brauchbare Anleitung für die GDI+? Ich habe da so meine Probleme gehabt, als sie rauskam und deshalb erstmal die Finger von gelassen.
30. März 200223 j Das haengt davon ab, wo Du "wchar_t" her holst. In ncurses/curses und X11 ist es folgendermaßen definiert: typedef unsigned long wchar_t; Im Zweifelsfall also lieber "sauber" programmieren und moeglichst nicht wild rumcasten. Nic
30. März 200223 j Original geschrieben von nic_power char *myChar; wchar_t *myWchar; myWchar=(wchar_t *)myChar; Ich bin mir sicher, das wird größten Müll geben! char szAnsi[255]; LPWSTR lpUnicode DWORD dwLength = AnsiToUnicode((LPCTSTR)szAnsi,NULL); LPWSTR lpUnicode = new wchar_t[dwLength]; AnsiToUnicode((LPCTSTR)szAnsi,lpUnicode); [/PHP] Ich glaube, so kommt man weiter. Zu GDI+ kenne ich nur die Anleitung, die in der MSDN ist. Wenn es eine bessere gibt, wäre ich auch sehr interessiert.
30. März 200223 j Original geschrieben von mst Ich bin mir sicher, das wird größten Müll geben! Ich habe ja auch geschrieben, dass man das nur dann tun sollte, wenn man weiss was man tut! Nic
30. März 200223 j Zur GDI+ habe ich auch bloß die doku aus der MSDN. Die reicht aber auch. Zum Thema: Das wilde rumcasten habe ich schon ausprobiert. Das gibt den totalen Müll. Deshalb habe ich auch gefragt. Das mit der Funktion AnsiToUnicode werde ich einmal ausprobieren
Erstelle ein Konto oder melde dich an, um einen Kommentar zu schreiben.