Рисование изображения с использованием WinAPI: LoadBitmap работает, а LoadImage() - нет?

Я довольно новичок в программировании Windows и следую Руководству по программированию Win32 API от Forger. Я пытался нарисовать изображение в окне.

Посмотрев на подобные проблемы, этот код кажется правильным для загрузки растрового изображения:

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;

У меня есть изображение ScreenSnip.bmp в расположении выше, и его размеры 498*304. Однако LoadImage не работает, и значение testImage всегда равно нулю.

Я попытался загрузить изображение в качестве ресурса с помощью LoadBitmap(), и это работает, поэтому я не включил остальную часть своего кода. Похоже, что LoadImage() выше, что вызывает проблему, но я не могу понять, почему.

У кого-нибудь есть идеи? Я использую VC++ в Windows 7 64bit.

1 ответ

Использование testImage = (HBITMAP)LoadImage(NULL, L"C:\\ScreenSnip.bmp", IMAGE_BITMAP, 498, 304, LR_LOADFROMFILE); Вы используете широко с L"C:..", поэтому вы должны использовать LoadImageW

Другие вопросы по тегам