-1
GetObject()
설명서에서는 lpvObject
이 NULL 일 때 필요한 바이트 수를 반환합니다. 하지만, 나는 그것이 실패 할 때 반환 값인 0을 얻는다.lbvobject가 NULL 일 때 GetObject가 실패하는 이유
내가 뭘 잘못했는지 알아 내려고 노력했다. 내가 말했듯이 a
가 GetObject()
함수 호출을 위해, 항상 0 또는 실패,
case WM_PAINT:
{
PAINTSTRUCT ps;
HDC hdc;
hdc = BeginPaint(hwnd, &ps);
HBITMAP hbmap;
hbmap = (HBITMAP) LoadImage(NULL, str_path, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_CREATEDIBSECTION);
BITMAP bm;
HDC bmapmemory = CreateCompatibleDC(hdc);
SelectBitmap(bmapmemory, hbmap);
int a = GetObject(hbmap, sizeof(BITMAP), NULL);
BitBlt(hdc, 0, 0, 750, 750, bmapmemory, 0, 0, SRCCOPY);
char c[64];
sprintf_s(c, sizeof(c), "%f\n", a);
OutputDebugStringA(c);
DeleteDC(bmapmemory);
DeleteObject(bmap);
EndPaint(hwnd,& ps);
return 0;
}
:
은 그냥WM_PAINT
메시지를 사용하여 기본 창 설정을 가지고있다.
'hbitmap'은 실제로 유효한 핸들입니까? 가능성이 없습니다. 먼저 NULL이 아닌지 확인하십시오. 그렇다면'LoadImage'를 호출 한 후'GetLastError'를 체크하십시오. (변수가 보통'hbmap'이라는 철자가 틀린데,'GetObject'를 호출하는 것 외에는'hbitmap '이라고 부릅니다. 그냥 오타라고 생각 합니다만, 복사해서 붙여 넣기 할 때 오타가 불가능해야합니다. 코드 * 스택 오버플로 질문에 ...) –
"hbmap"을 의미합니까? – molbdnilo
예 hbmap을 의미했습니다. 관련이없는 물건을 제거 할 때 오타가 발생했습니다. 편집 감사합니다. 그 이상한 부분은 핸들이 성공적으로 만들어졌고 비 널 (null)이 아니며 제대로 화면에 blts된다는 것입니다. – anonymous123432