c++ - 微软 C++ 异常 : long at memory location

标签 c++ visual-studio-2010 directx-9

我在这一行看到“Microsoft C++ 异常:内存位置长”:
pDev->DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 0, m_Size * m_Size, 0, m_TriangleCount);

pDev 是 LPDIRECT3DDEVICE9,我使用的是 DirectX 9.0。
我不知道“long at memory location”到底是什么意思。
为什么在这一行打印消息?

最佳答案

您应该忽略在“输出”窗口中看到的任何“第一次机会异常”消息,它仅显示 DirectX 管道内部使用的异常来处理错误情况。异常只有在未被捕获时才是致命的。

绝不应该忽略的是 DrawIndexedPrimitive() 的返回值。它返回一个 HRESULT,一个指示函数调用是否成功的状态代码。粗略的代码应该是这样的:

HRESULT hr = pDev->DrawIndexedPrimitive(...);
if (FAILED(hr)) {
    // Report error code stored in "hr" and terminate
    //...
}

关于c++ - 微软 C++ 异常 : long at memory location,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11922641/

相关文章:

c++ - 无法在 Watch 窗口中计算具有重载运算符的表达式

C++ std::variant 与 std::any

visual-studio-2010 - 在 Visual Studio 中本地使用 BitBucket 存储库

.net - MVC 3 "is incompatible with .NET Framework 4"

c++ - 由于 list 不正确,并行配置不正确

java - 如何验证 JavaFX 2.0 在 XP 机器上使用 directx 9?

c++ - 计算 2 D3DXVECTOR3 与距离无关的 vector

c++ - ITaskbarList3 未声明?

c++ - 在 C++ 中继承友元运算符

c++ - DirectX 9 字体库?