返回信息流向gif文件里写入局部信息头的时候,莫名其妙的就多了一个字节.
//写局部信息
GifFile.GifLocal.Comma=0x2C;
GifFile.GifLocal.ImageLeft=0x00;
GifFile.GifLocal.ImageTop=0x00;
GifFile.GifLocal.ImageWide=m_nWidth;
GifFile.GifLocal.ImageDeep=m_nHeight;
GifFile.GifLocal.LocalFlag=0x00;
myFile.Write((LPSTR)&GifFile.GifLocal,10);
GifFile.GifLocal的定义是:
struct GIFLOCAL
{
char Comma;
WORD ImageLeft;
WORD ImageTop;
WORD ImageWide;
WORD ImageDeep;
BYTE LocalFlag;
}GifLocal;
运行后用UltraEdit查看,这十个字节是"2C CC 00 00 00 00 64 00 64 00"
"CC"不知是哪来的.
还有sizeof(GIFLOCAL)的结果是12,为什么不是10?
高手帮忙啊!
这是一条镜像帖。来源:北邮人论坛 / cpp / #17390同步于 2008/12/10
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
[求助]莫名多出来一个字节
littletail
2008/12/10镜像同步7 回复
订阅后,新回复会通过你的通知中心匿名送达。
7 条回复
【 在 coolfantasy 的大作中提到: 】
: 贴代码..
其他的应该不太重要了,都贴贴不下,就是把bmp用lzw编码,然后生成gif文件
请见此版置顶贴。
struct和class都可能会出现内存对齐的问题。
要想保证所有的字节都连续存放,请加上预编译选项 #pragma pack(1)
【 在 ericyosho 的大作中提到: 】
: 请见此版置顶贴。
: struct和class都可能会出现内存对齐的问题。
: 要想保证所有的字节都连续存放,请加上预编译选项 #pragma pack(1)
明白了,感谢