Frage

Ich habe eine großes Zeichen XML-Nachricht, die ich brauche einen Win32-Buchse in C senden über ++.

TCHAR wszBuffer[1024];

Should I sprintf(szSendBuffer, "%S", wszBuffer) die großen Zeichenpuffer zu einem char Array vor dem Senden?

Was ist der richtige Weg, dies zu schicken?

War es hilfreich?

Lösung

Pass wszBuffer direkt an die Socket-Funktion, um es zu char * Gießen mit length = sizeof (wszBuffer) oder 1024 * sizeof (TCHAR). In diesem Fall wird der Puffer senden, wie ist.

Wenn Sie diesen Text als ANSI-Zeichenfolge senden wollen, wandeln sie durch eine beliebige Zeichenfolge convertion Funktion. sprintf ist in Ordnung, eine andere Art und Weise ist W2A. Aber einige Informationen verloren gehen.

Andere Tipps

Da Sie mit XML zu tun hat, müssen Sie es in UTF-8 oder anderer XML-freundlichen Zeichencodierung codieren (und geben Sie diese Codierung in dem Prolog des XML), bevor es über die Steckdose zu senden.

Mit WideCharToMultiByte es auf UTF-8 zu konvertieren (oder einer anderen char-basierte Kodierung, so lange wie Sie es in der XML-Datei deklarieren).

Sie können einfach auf ein char werfen *. Am anderen Ende können Sie einfach die empfangen Puffer auf wchar_t * gegossen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top