質問

ファイルに書き込みたいラスターデータがあるとしましょう..bmpファイルとして書き込みたいと思います。

このデータはたまたまDWORDに揃えられていないため、正しく理解できれば、次のDWORDに到達するのに十分なバイトを埋め込む必要があります。

ただし、次のコードでパディングしようとすると:

bmFile.Write(0x0, (4-(actualWidth%4)));

エラーが発生します。デバッグしようとすると(MSVC ++ 6.0を使用しています)、次のステートメントは、最初のパラメーターがNULLであることをアサートするCFile :: WriteのASSERTを指します。 / p>

どのようにパディングするのですか?書き出す必要があります:

bmFile.Write("0x0"(4-(actualWidth%4)));

代わりに?または、これは文字通り処理されますか...

ありがとう..

役に立ちましたか?

解決

おそらく試してみてください:

bmFile.Write("\0\0\0\0", (4-(actualWidth%4)));

最初の例は、あなたが言うように、nullポインタが指すデータを書き込もうとすることです。 2番目の例では、ASCII値0x30、0x78、0x30を持つバイト '0'、 'x'、 '0'から書き込みますが、これはおそらく意図しないものです。

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