Send(Sock、Wszbuffer、…)でTchar Bufferを送信しますか?
-
30-09-2019 - |
質問
C ++でWin32ソケットを送信する必要があるという幅広い特徴のXMLメッセージがあります。
TCHAR wszBuffer[1024];
するべきか sprintf(szSendBuffer, "%S", wszBuffer)
aへの広い文字バッファー char
送信する前に配列?
これを送る正しい方法は何ですか?
解決
wszbufferをソケット関数に直接渡し、char *にキャストし、length = sizeof(wszbuffer)、または1024 * sizeof(tchar)を使用します。この場合、バッファはそのまま送信されます。
このテキストをANSI文字列として送信する場合は、弦楽装置関数で変換します。 sprintfは大丈夫です、もう1つの方法はW2Aです。しかし、いくつかの情報が失われる可能性があります。
他のヒント
XMLを扱っているので、ソケットに送信する前に、UTF-8または他のXMLに優しい文字エンコード(およびXMLのプロログでそのエンコードを指定)でエンコードする必要があります。
使用する WideCharToMultiByte
UTF-8(または他の任意のものに変換します char
- XMLファイルで宣言する限り、ベースのエンコード。
単にchar*にキャストすることができます。一方、Recieved Bufferをwchar_t*にキャストするだけです。
所属していません StackOverflow