загрузка изображений в буферный буфер / direct3d / c ++ - PullRequest
0 голосов
/ 23 декабря 2011

это переменные:

std::wstring        wsPath = L"./LIFE.bmp"; // path to the image
IDirect3DSurface9   *Surface = NULL;    // image surface
IDirect3DSurface9   *BackBuffer = NULL; // back buffer surface

и это render() функция:

void render(void)
{
    // Check to make sure you have a valid Direct3D device
    if (NULL == pd3dDevice) return;

    pd3dDevice -> Clear(0, NULL, D3DCLEAR_TARGET, D3DCOLOR_XRGB(0, 0, 255), 1.0f, 0);   // clear the back buffer to a blue color

    if (SUCCEEDED(pd3dDevice -> BeginScene()))
    {
        D3DXIMAGE_INFO Info;

        D3DXGetImageInfoFromFile(wsPath.c_str(), &Info);
        pd3dDevice -> CreateOffscreenPlainSurface(Info.Width, Info.Height, Info.Format, D3DPOOL_SYSTEMMEM, &Surface, NULL);

        D3DXLoadSurfaceFromFile(Surface, NULL, NULL, wsPath.c_str(), NULL, D3DX_FILTER_NONE, 0, NULL);

        pd3dDevice -> GetBackBuffer(0, 0, D3DBACKBUFFER_TYPE_MONO, &BackBuffer);
        pd3dDevice -> UpdateSurface(Surface, NULL, BackBuffer, NULL);

        // End the scene
        pd3dDevice -> EndScene();
    }

    // Present the back buffer contents to the display
    pd3dDevice -> Present(NULL, NULL, NULL, NULL);
}

я продолжаю получать эту странную ошибку:

1>DIRECTX_001.obj : error LNK2019: unresolved external symbol _D3DXLoadSurfaceFromFileW@32 referenced in function "void __cdecl render(void)" (?render@@YAXXZ)
1>DIRECTX_001.obj : error LNK2019: unresolved external symbol _D3DXGetImageInfoFromFileW@8 referenced in function "void __cdecl render(void)" (?render@@YAXXZ)

Можете ли вы объяснить мне, что здесь происходит? Спасибо!

1 Ответ

2 голосов
/ 23 декабря 2011

Компоновщик сообщает, что не может найти функции D3DXLoadSurfaceFromFile и D3DXGetImageInfoFromFile.

Проверьте настройки компоновщика и убедитесь, что вы включили необходимые библиотеки.

Библиотека, о которой идет речь, - D3dx9.lib.

...