Microsoft C ++异常:长在内存位置

时间:2012-08-12 13:45:33

标签: 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 我不知道“记忆位置长”是什么意思 为什么要在此行打印消息?

1 个答案:

答案 0 :(得分:1)

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

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

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