maddin Geschrieben 29. März 2002 Geschrieben 29. März 2002 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. Zitieren
nic_power Geschrieben 30. März 2002 Geschrieben 30. März 2002 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 Zitieren
Crush Geschrieben 30. März 2002 Geschrieben 30. März 2002 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. Zitieren
nic_power Geschrieben 30. März 2002 Geschrieben 30. März 2002 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 Zitieren
mst Geschrieben 30. März 2002 Geschrieben 30. März 2002 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. Zitieren
nic_power Geschrieben 30. März 2002 Geschrieben 30. März 2002 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 Zitieren
maddin Geschrieben 30. März 2002 Autor Geschrieben 30. März 2002 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 Zitieren
Klotzkopp Geschrieben 30. März 2002 Geschrieben 30. März 2002 Es gibt auch noch MultiByteToWideChar. Zitieren
maddin Geschrieben 30. März 2002 Autor Geschrieben 30. März 2002 ich habs jetzt mit der AnsiToUnicode gemacht. Und damit läuft alles bestens 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.