fwrite を使用して、バッファーの内容を gcc のファイルに書き込むことに慣れています。ただし、何らかの理由で、fwrite が Visual C++ 2005 で正しく動作しないようです。
私が今行っているのは、テキスト ファイルをバイナリに変換することです。プログラムは最初の 61 行までは正常に動作しましたが、62 行目で出力バイナリ ファイルに 0x0d を挿入しました。基本的に、それはオリジナルを変えました
12 0a 00
に
12 0d 0a 00
バッファを確認しましたが、内容は正しかったです。
buffer[18] = 0x12, buffer[19] = 0x0a, buffer[20] = 0x00
そして、このバッファをファイルに書き込もうとしました
fwrite(buffer, 1, length, fout)
ここで、長さはバッファ コンテンツのサイズの正しい値です。
これは一度私に起こり、コードを fwrite から WriteFile に変更して正しく動作させる必要がありました。出力に 0x0d が挿入される理由はありますか? これを修正できますか、それとも代わりに WriteFile を使用する必要がありますか?