hLogPal = GlobalAlloc(GHND, sizeof(LOGPALETTE) +
sizeof(PALETTEENTRY) * wNumColors);
if (!hLogPal) return NULL;
lpPal = (LPLOGPALETTE)GlobalLock(hLogPal); hDIB = GlobalAlloc(GMEM_MOVEABLE, (DWORD)(sizeof(BITMAPINFOHEADER) +
256 * sizeof(RGBQUAD)));
if (!hDIB) return NULL;
lpbi = (LPBITMAPINFOHEADER)GlobalLock(hDIB);
这是一本书上读入位图的两段程序。
我想知道它为什么要GlobalAlloc和GlobalLock,和第一个为什么用GHND,而第二个用GMEM_MOVEABLE。
这个程序是个MDI程序。
sizeof(PALETTEENTRY) * wNumColors);
if (!hLogPal) return NULL;
lpPal = (LPLOGPALETTE)GlobalLock(hLogPal); hDIB = GlobalAlloc(GMEM_MOVEABLE, (DWORD)(sizeof(BITMAPINFOHEADER) +
256 * sizeof(RGBQUAD)));
if (!hDIB) return NULL;
lpbi = (LPBITMAPINFOHEADER)GlobalLock(hDIB);
这是一本书上读入位图的两段程序。
我想知道它为什么要GlobalAlloc和GlobalLock,和第一个为什么用GHND,而第二个用GMEM_MOVEABLE。
这个程序是个MDI程序。
解决方案 »
- OnPaint()可不可以代替InvalidateRect
- VC VS2010编写了一个小的mydll.dll,copy到syste32目录下,360报是木马trojan.generic
- 在ping值较小的情况下(低于100)udp是丢包的几率大,还是乱序的几率大?
- onReceive onAccept 不能正常触发
- 调用COM的dll中的函数
- 迭代器中的指居然循环一次就变了,实在想不出什么原因
- 请教这个函数中的(hbitmap)的来历(高分)
- mdi中如何在一个文档里面新建一个文档,并初始化文档内容,显示出来。
- 菜鳥問:儲存于collection class之中的元素是否要有傾印(dump)和錯誤診斷能力。
- 映像模式问题
- 怎么检测出有两个显示器?急救!!
- Google用不了了,怎么回事?
即内存预先清零
其它没有什么不同
GMEM_MOVEABLE分配的内存可能不在物理内存中
所以用 GlobalLock 分页交换到物理内存
GlobalLock通过内存句柄获得内存的指针.
GHND和GMEM_MOVEABLE,你可以去MSDN看看,第二个用GHND也是可以的.
我用过.
我只有C的功底。