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

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

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

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