Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

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.

Geschrieben

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

Geschrieben

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.

Geschrieben

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

Geschrieben
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.

Geschrieben
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

Geschrieben

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 Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...