D3DXLoadSurfaceFromFile вызывает преждевременное закрытие программы

Я новичок в программировании на DirectX и C ++, но мне нужно домашнее задание (я уже выполнил фактическое задание, но не могу заставить мой код работать после компиляции). Я вошел в свою программу и обнаружил, что проблема моя D3DXLoadSurfaceFromFile вызов. Фактический код

//load m_Surface from file into newly created m_Surface
result = D3DXLoadSurfaceFromFile(
m_Surface,
NULL,
NULL,
m_BackgroundFile,
NULL,
D3DX_DEFAULT,
0,
NULL);

Где «результат»:

    HRESULT result = m_d3ddev->CreateOffscreenPlainSurface(
SCREENW,            //An int set to 640
SCREENH,            //An int set to 480
D3DFMT_X8R8G8B8,    //m_Surface's format
D3DPOOL_DEFAULT,    //Memory pool
&m_Surface,         //Pointer to m_Surface
NULL);              //Reserved

m_Surface является LPDIRECT3DSURFACE9 изначально установлен на NULL,

m_BackgroundFile установлен в «filename.bmp» (24-битное растровое изображение)

и (я думаю / надеюсь) все остальное говорит само за себя.

Если это помогает, прямо перед проверкой (именно эта проверка приводит к закрытию программы)

if (!SUCCEEDED(result))
return false;

результат устанавливается в S_OK, а затем -200559767

1

Решение

Из вашего кода я не увидел ничего плохого, но я предполагаю, что вы передали неправильный файл параметру m_BackgroundFile, либо программа не может найти файл, либо файл был в недопустимом формате.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]