我正在创建D3D光标,所以首先我制作了Surface&Texture。 这样做,我遇到了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 票数:2

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

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

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 );
}

  ask by user2909276 translate from so

未解决问题?本站智能推荐:

4回复

D3D和COM问题

所有D3D接口都是从COM的IUnknown接口派生的,因此尽管我会采取一种简单的方法来发布D3D对象,并使用类似以下的方法: 但是这不起作用,因为当我尝试使用编译器时,它将生成无效的类型转换错误。 我能想到的唯一方法是: 但是后来我失去了一些功能,而且看起来也很狡猾。 有一
1回复

CreateTexture2D失败…(d3d)

我正在尝试使用STAGING用法创建D3D纹理2d。 总是失败,并显示错误:“参数不正确”(代码0x80070057)... 我不明白,除了暂无问题外,我还可以创建其他文件,但无法成功完成此操作...请在计算机飞过窗口之前帮助我...请... 这是有问题的代码: 在以下
1回复

c ++ d3d挂钩 - COM vtable

试图制作一个Fraps类型的程序。 查看评论失败的位置。
1回复

D3D功能级别问题

有人可以向我解释一下,如果有人尝试使用比Users GPU支持的更高的d3d_feautre_level,会发生什么? 这是我不明白的地方,所以如果有人可以帮助我解决这个问题,我将不胜感激
1回复

在D3D挂钩中检测帧的开始/结束

我的程序钩住了D3D EndScene来绘制覆盖图; 但是,一个特定的游戏似乎每帧(在同一设备上)调用BeginScene / EndScene两次以渲染其UI。 有没有办法说这种情况正在发生? 我想象Present也被调用了两次,可能使用了不同的渲染目标,但是我不知道在EndScene挂
1回复

D3D泄漏,但这是因为我在全局对象中有引用吗?

我从D3D11调试运行时获取设备泄漏报告(以及非零引用计数对话框)。 我有两个全局类,其中包含指向布局缓冲区,顶点着色器和像素着色器的智能指针。 如果在这些类的析构函数上放置一个断点,则可以看到泄漏报告甚至在删除这些全局变量之前就已经发生了,也许就像您期望的那样。 什么是正确的方法
2回复

D3D编译E_INVALIDARG

我在这里遇到D3DCompile的问题。 我正在编写具有CX \\ C ++运行时的UWP应用程序。 有一个代码 结果,我得到E_INVALIDARG。 有趣的是,如果我在着色器的文本中犯了一个错误(例如,不要编写另一个入口点),则结果是特定的编译错误。 可能是什么问题呢
1回复

调用D3D的CreateRasterizerState1时发生InvalidArgumentException

我正在通过C ++在DirectX 11中工作,创建光栅化器状态时出现错误。 首先,下面是代码: 在那里设置FillMode并不重要-只是为了说明我的用法而已。 我尝试设置所有成员,但没有一个。 在调试器中,我可以看到所有其他成员都有其默认值。 该错误在CreateRaser
1回复

如何在C ++中创建IDirect3DSurface9(D3D曲面)曲面的数组?

如果要创建D3D曲面,请按照以下步骤进行操作。 如果想创建IDirect3DSurface9 *类型的D3D曲面数组,该如何在C ++中实现? QUERY ::如何在C ++中创建D3D设备数组?
1回复

创建D3D设备后无法进行双重计算

我正在编写一个D3D应用程序,它使用DXUT初始化设备和处理所有事件。 虽然,我发现了一个奇怪的行为:一旦我创建了一个设备,应用程序中的所有双精度计算都会被破坏。 经过一些调试后,我将代码简化为: 好吧,我很确定这里有浮动/双重问题,但我不明白它是如何被触发以及如何解决它。 我尝试