D3D - GetSurfaceLevel未处理的异常

时间:2014-04-20 16:18:35

标签: c++ direct3d

我正在创建D3D光标,所以首先我制作了Surface&质地。 这样做,我遇到了GetSurfaceLevel()函数的错误。

0x5B494B11处的未处理异常 0xC0000005:访问冲突读取位置0x00000000。

代码:

D3DXCreateTextureFromFile( g_D3dDevice, L"cursor1.bmp", &g_cursortex );
g_cursortex->GetSurfaceLevel( 0, &g_surfcursor );
g_D3dDevice->SetCursorProperties( 0, 0, g_surfcursor );

g_D3dDevice->ShowCursor( TRUE );

我该怎么办?

1 个答案:

答案 0 :(得分:2)

Unhandled exception at 0x5B494B11 0xC0000005: Access violation reading location 0x00000000.

这种错误是由取消引用NULL指针引起的,检查是否已成功创建纹理。在调用g_cursortex->GetSurfaceLevel( 0, &g_surfcursor );

之前,请确保g_cursortex不为NULL
HRESULT hr = D3DXCreateTextureFromFile( g_D3dDevice, L"cursor1.bmp", &g_cursortex );
if (SUCCEEDED(hr))
{
    g_cursortex->GetSurfaceLevel( 0, &g_surfcursor );
    g_D3dDevice->SetCursorProperties( 0, 0, g_surfcursor );
}