2013-01-24 2 views
2

저는 Windows 프로그래밍에 익숙하지 않으며 TheForger의 Win32 API 프로그래밍 자습서를 따라 왔습니다. 나는 창 안쪽에 이미지를 그려 내려고 노력해왔다.WinAPI를 사용하여 그림 그리기 : LoadBitmap은 작동하지만 LoadImage()는 작동하지 않습니까?

HBITMAP testImage == NULL; 
case WM_CREATE: 
    testImage = (HBITMAP)LoadImage(NULL, L"C:\\ScreenSnip.bmp", IMAGE_BITMAP, 498, 304, LR_LOADFROMFILE); 
    if(testImage == NULL) { 
     MessageBox(NULL, L"NO IMAGE LOADED!", L"Error!", MB_ICONEXCLAMATION | MB_OK); 
    } 
break; 

I 위의 위치에서 ScreenSnip.bmp라는 이미지를 가지고, 그 사이즈 * 304 498이다 :

유사한 문제에보고하는 데,이 코드는 비트 맵을 로딩하기위한 올바른 것으로 보인다. 그러나 LoadImage는 작동하지 않고 testImage의 값은 항상 null입니다.

LoadBitmap()을 사용하여 이미지를 리소스로로드하려고 시도했는데 작동하기 때문에 나머지 코드는 포함되지 않았습니다. 위의 LoadImage()가 문제를 일으키는 것으로 보이지만 이유를 파악할 수 없습니다.

누구든지 아이디어가 있습니까? Windows 7 64 비트에서 VC++을 사용하여이 프로그램을 실행하고 있습니다.

+0

당신이 cxDesired'와는'제로로 설정 cyDesired''로 시도 해 봤나 사용 그래서? 문서에서 이러한 "원하는 크기"의 인수가 아이콘이나 커서 이외의 다른 것에 대해 허용된다는 표시는 없습니다. –

+0

나는 그것을 시험해 보았다. 나는 두려워하지 않았다. – BeneGal

+4

* 함수가 실패하면 반환 값은 NULL입니다. 자세한 오류 정보를 얻으려면 GetLastError를 호출하십시오. * – chris

답변

-1

사용 testImage = (HBITMAP)LoadImage(NULL, L"C:\\ScreenSnip.bmp", IMAGE_BITMAP, 498, 304, LR_LOADFROMFILE); 당신은 넓은 사랑의 L "C를 .."를 사용하면 LoadImageW

+0

실수로'char *'가 예상되는'WCHAR *'을 실수로 넘긴다면 컴파일 오류가 발생합니다. – jamesdlin