我是 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
最佳答案
从你的代码中,我没有发现任何错误,但我猜你向参数 m_BackgroundFile 传递了一个错误的文件,要么是程序找不到该文件,要么是该文件的格式 Not Acceptable 。
关于c++ - D3DXLoadSurfaceFromFile 导致程序过早关闭,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12699850/