質問

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*にキャストするだけです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top