HDIB WINAPI readdibfile(CFile& file)
{
bitmapheaderfile  bmfheader;
DWORD dwbitsize;
HDIB hdib;
LPSTR pdib;
dwbitsize=file.GetLength();
if(file.Read((LPSTR)&bmfheader,sizeof(bmfheader)!=sizeof(bmfheader)))
{
return NULL;
}
if(bmfheader.bftype!=DIB_HEADER_MARKER)
return NULL;
hdib=(HDIB)GlobalAlloc(GMEM_MOVEABLE|GMEM_ZEROINT,dwbitsize-sizeof(bitmapheaderfile));
if(hdib==0)   
return NULL;
pdib =(LPSTR)::GlobalLock((HGLOBAL)hdib); if(file.ReadHuge(pdib,dwbitsize-sizeof(bitmapheaderfile))!=
                  dwbitsize-sizeof(bitmapheaderfile))
{
::GlobalUnlock((HGLOBAL) hdib);
::GlobalFree((HGLOBAL) hdib);
return NULL;
}
::GlobalUnlock((HGLOBAL) hdib);
return hdib;
}
这个HDIB在那里定义的呀,GMEM_MOVEABLE|GMEM_ZEROINT在那里定义的?它表示的是什么呀!
请教了,谢谢……………………

解决方案 »

  1.   

    HDIB看字面意思应该是位图句柄,位图分2种,一种是设备无关位图,一种是设备有关位图,DIB好象是设备无关位图,(具体记不太清了)。其实HDIB就可以理解成HBITMAP。GMEM_MOVEABLE和GMEM_ZEROINT是位图头结构体成员变量的值。
      

  2.   

    装了msdn后,想知道哪个变量或函数的定义,右击->go to definition即可
      

  3.   

    这个你查查MSDN吧,其实也没必要搞懂,你用的多了就知道啥了。
    你还是先把计算机的基础看看吧,这些基本都是计算机的基础东东
      

  4.   

    在调用上面的函数时出现个问题,
    dip_1Doc.obj : error LNK2001: unresolved external symbol "void * __stdcall readdibfile(class CFile &)" (?readdibfile@@YGPAXAAVCFile@@@Z)
    这是怎么回事呀,再请教下!