WinCE下调用CreateDIBSection问题
ljan 2009-03-24 11:20:16 Wince下,需要实现一个接口,读一个bmp file,返回一个hbitmap handle。
当前case,打开一个22*22的16位bmp文件,
大致调用如下:
hBitmap=CreateDIBSection(hDc,(BITMAPINFO *)lpImgData,DIB_RGB_COLORS,
(void **)&ptData,NULL, 0);
memcpy(ptData, lpPtr, ImgSize);
ImgSize 是lpImgData的BITMAPINFOHEADER中的biSizeImage,数据为970
(或者BITMAPFILEHEADER 里的 bfSize- bfOffBits,也是970)
我在win32下,这个接口返回的句柄,在外面使用都没问题。
Wince一调用,就在其他调用接口的地方,老是死机。
我同事说, ImgSize应该用(lpImgData的BITMAPINFOHEADER中的) biWidth*biHeight*2 = 22*22*2 = 968
用970 copy,会把其他的memory覆盖到?
似乎按照我同事的方法,调用了一下,确实没出错,但是我不知道原因是什么,为什么1个是970,另一个是968,差2个字节。
有人知道那种用法对吗?