我有一条宽字符 XML 消息,需要通过 C++ 中的 Win32 套接字发送。
TCHAR wszBuffer[1024];
我是否应该在发送前将宽字符缓冲区sprintf(szSendBuffer, "%S", wszBuffer)
到char
数组?
正确的发送方式是什么?
最佳答案
将 wszBuffer 直接传递给套接字函数,将其转换为 char*,长度 = sizeof(wszBuffer),或 1024 * sizeof(TCHAR)。在这种情况下,缓冲区将按原样发送。
如果要将此文本作为 ANSI 字符串发送,请使用任何字符串转换函数对其进行转换。 sprintf 可以,另一种方式是 W2A。但可能会丢失一些信息。
关于c++ - 使用 send(sock, wszBuffer, ...) 发送 TCHAR 缓冲区?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3555635/