1

我是 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

4

1 回答 1

0

从您的代码中,我没有看到任何错误,但是我猜您将错误的文件传递给参数 m_BackgroundFile,程序找不到该文件或该文件的格式不可接受。

于 2012-10-03T09:41:32.103 回答