首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

无法从“BYTE *”转换为“DWORD *”解决办法

2013-11-19 
无法从“BYTE *”转换为“DWORD *”源程序://申请DIB所需要的内存空间,将除BITMAPFILEHEADER结构外的位图数据

无法从“BYTE *”转换为“DWORD *”
源程序://申请DIB所需要的内存空间,将除BITMAPFILEHEADER结构外的位图数据读入内存
//存放在m_pDib所指向的缓冲区中
    m_pDib=new BYTE[(DWORD)(file.GetLength()-sizeof(BITMAPFILEHEADER))];
file.Read(m_pDib,(UINT)(file.GetLength()-sizeof(BITMAPFILEHEADER)));
错误:
1>c:\documents and settings\a\my documents\visual studio 2010\projects\xfy\test1_4\test1_4\test1_4doc.cpp(159): error C2440: “=”: 无法从“BYTE *”转换为“DWORD *”
1>          与指向的类型无关;转换要求 reinterpret_cast、C 样式转换或函数样式转换
1>


怎么修改啊,试了N种方法,不行啊,郁闷
[解决办法]
m_pDib=(DWORD *)new BYTE[(DWORD)(file.GetLength()-sizeof(BITMAPFILEHEADER))];
这样写可以让你通过编译。但是你要知道,dword是4个字节,而byte是单个字节的。
[解决办法]
还是一样有关系啊
因为infoHead等于是你的m_pDib !!!

热点排行