Domanda

Ho un messaggio XML a livello di carattere che ho bisogno di inviare più di una presa di Win32 in C ++.

TCHAR wszBuffer[1024];

Dovrei sprintf(szSendBuffer, "%S", wszBuffer) il buffer di caratteri estesi a un array char prima di inviarlo?

Qual è il modo corretto per inviare questo?

È stato utile?

Soluzione

Passo wszBuffer direttamente alla funzione presa, colata a char *, con lunghezza = sizeof (wszBuffer), o 1024 * sizeof (TCHAR). In questo caso il buffer sarà trasmette come è.

Se si desidera inviare questo testo come stringa ANSI, convertirlo da qualsiasi funzione di stringa di conversione. sprintf è OK, un altro modo è W2A. Ma alcune informazioni possono essere perse.

Altri suggerimenti

Dal momento che avete a che fare con XML, è necessario codificare in UTF-8 o altra codifica dei caratteri XML-friendly (e specificare che la codifica nel prologo del XML) prima di inviare sopra la presa.

Usa WideCharToMultiByte per convertirlo in UTF-8 (o qualsiasi altra codifica char-based, a patto che si dichiara nel file XML).

Si può semplicemente lanciarlo a un char *. D'altra estremità si può semplicemente lanciare il buffer ricevuto a * wchar_t.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top