HBITMAP到BITMAP的转换

max*_*mus 6 winapi bitmap

不能理解这段代码有什么问题:

HBITMAP bm = 0; 
BITMAP Bitmap;
bm = (HBITMAP)LoadImage (0, path, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
int error = GetObject( &Bitmap, sizeof( BITMAP  ), &bm );
Run Code Online (Sandbox Code Playgroud)

LoadImage函数返回非空指针.但GetObject返回0,表示出错.我想从HBITMAP指针获取大小信息和图像数据(指针可以作为参数传递,所以我不能改变我加载位图文件的方式).

Who*_*aig 9

也许将参数放在正确的位置将有助于:

HBITMAP bm = 0; 
BITMAP Bitmap;
bm = (HBITMAP)LoadImage (0, path, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
int error = GetObject( bm, sizeof( BITMAP ), &Bitmap ); // << NOTE ORDERING
Run Code Online (Sandbox Code Playgroud)

有关GetObject()详细信息,请参阅文档.