首页
社区
课程
招聘
[求助]关于设备无关位图的指针问题
发表于: 2011-9-16 19:15 3463

[求助]关于设备无关位图的指针问题

2011-9-16 19:15
3463
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
        static BITMAPFILEHEADER *pbmfh;
        static BITMAPINFO *pbmi;
        static BYTE *pBits;
        static int cxClient,cyClient,cxDib,cyDib;
        static TCHAR szFileName[MAX_PATH],szTitleName[MAX_PATH];
        BOOL bSuccess;
        HDC hdc;
        PAINTSTRUCT ps;
        。。。。。。。。
        pbmi=(BITMAPINFO*)(pbmfh+1);//这里为什么是+1,我觉得应该是+14,因为BITMAPFILEHEADER是占14个B
        pBits=(BYTE*)pbmfh+pbmfh->bfOffBits;
求解。

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (1)
雪    币: 113
活跃值: (100)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
多少年没碰bmp了,仅从代码说下我的理解,

pbmfh是BITMAPFILEHEADER 类型的指针,+1表示跳过这个header,BITMAPINFO 应该是紧跟着header部分的,所以才有
pbmi = (BITMAPINFO * )(pbmfh+1);

至于你说的BITMAPFILEHEADER大小是14,那到没有关系,因为pbmfh是有类型的,不是char *.

如果 是这样
char *pbmfh;

那么应该加14的。
2011-9-16 21:40
0
游客
登录 | 注册 方可回帖
返回
//