Konvertierungsfrage / Winapi <-> C++

HCWD

Erfahrenes Mitglied
Hallo Leute.

Ich bin jetzt mehrmals in das Problem geraten, dass ich bei einer WinAPI-Pogrammierung immer das Problem zwischen einem char[] und einem WCHAR[] hatte oder ähnliches.

Einfaches Beispiel:

Ich will ein kleines Chatprogramm entwerfen und dann will ich bei einem erfolgreich aufgebautem Socket an den Server eine Nachricht senden die aus einem Editfeld ausgelesen wurde. Somit hab ich das Problem von einem LPSTR in ein char[] es umzuwandeln.

Gibt es eine effektive Lösung um nicht jedes Mal eine Konvertierung anzuwenden
oder eine einfache Methode um diese und weiter Typen umzuwandeln?

Greetz

HCWD
 
Hallo,

anhand deiner Fragestellung vermute ich, dass du mit dem Visual Studio programmiert. Das WCHAR <-> CHAR Problem lässt sich (außer durch Konvertierung) mit zwei Möglichkeiten behandeln:

1. Bei den Projekteinstellungen kannst du festlegen, ob der Unicode- oder Multibyte-Zeichensatz unterstützt werden soll. Bei letzterem kannst du durchgängig mit CHAR arbeiten, ansonsten WCHAR. Bei Studio-Versionen ab 2003 wird beim Erzeugen der Projekte defaultmäßig die Unicode-Untersatützung aktiviert.

2. API-Funktionen, die mit Zeichenketten arbeiten, liegen immer in zwei Varianten vor: Mit dem Nachsatz "W" wird WCHAR verarbeitet, mit dem Nachsatz "A" CHAR. Ohne den Nachsatz kommt automatisch die in den Projekteinstellungen vorgegebene Variante zur Anwendung. Beispiel:
C++:
GetWindowTextA( ...) // Standard
GetWindowTextW( ...) // Unicode
GetWindowText( ...)  // Zeichensatz abhängig von Projekteinstellungen
Wenn du also immer explizit die "A"-Variante schreibst, brauchst du auch keine Konvertierung.

Gruß
MCoder
 
Boah.... wie einfach ^^ VIELEN DANK :-)

Ich wusste es ist etwas einfaches... aber dann waren wohl meine Suchwörter in Google nicht die richtigen.

Nochmal danke!

Greetz

HCWD
 
Zurück