unsigned chars を stringstream に書き込もうとしています。
書き込む必要がある情報には 0x00 が含まれています。0 から 40 までの値を ASCII 文字ではなく、実際の数値として書き込む必要があります。
編集: 明確にするために、0 ~ 40 の値以上のものを書いています。バイナリである必要があります。入ってくるものは、ストリームに書き込まれると文字に変換されるのではなく、そのままにしておく必要があります...
以下は私がやっていることの要旨です。
TCHAR _buffer[2]; // This is part of the problem, I figure, since its a char
_buffer[0] = 0x00;
_buffer[1] = 0x01;
tstringstream s;
s.write(_buffer, sizeof(_buffer));
最終的に何が起こるかというと、0x00 によって文字列ストリームが終了し、0x01 がそこに到達しないようです。
私は同様の方法で読んでいます:
stream.readsome(_buffer, sizeof(_buffer));
0x00 が書き込まれ、すべてが終了してしまうため、うまくプレイしたくないようです。
それはまさにその通りですか、それとも何かが足りないのですか?ios_base::binary を使用してみました。また、TCHAR の代わりに uint8_t を使用してみましたが、キャストなどの混乱が生じているようです。これが必要なルートかもしれないのではないかと心配していますが、実行する前に確認したいと思います.
簡単に言うと、C# の BinaryReader/Writer に相当する C++ を見つけようとしています。
ありがとう!