1

假设我有一些要写入文件的栅格数据。现在我想将其写为 bmp 文件。

该数据恰好不是 DWORD 对齐的,如果我理解正确,需要用足够的字节填充才能到达下一个 DWORD ..

但是,当我尝试用这段代码填充它时:

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

我得到一个错误..如果我尝试调试(我使用的是 MSVC++ 6.0),下一条语句指向 CFile::Write 中的一个断言,它断言第一个参数为 NULL..所以这失败了..

我应该怎么垫?我应该写出:

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

反而?还是会按字面意思对待...?

谢谢..

4

1 回答 1

3

也许尝试:

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

正如您所说,您的第一个示例是尝试写入空指针指向的数据。您的第二个示例将从具有 ASCII 值 0x30、0x78、0x30 的字节“0”、“x”、“0”写入,这可能不是您想要的。

于 2009-01-07T02:58:46.367 回答