我在这一行看到“Microsoft C++ 异常:在内存位置长”:
pDev->DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 0, m_Size * m_Size, 0, m_TriangleCount);
pDev 是 LPDIRECT3DDEVICE9,我使用的是 DirectX 9.0。
我不知道“长在内存位置”的确切含义。
为什么在这一行打印消息?
我在这一行看到“Microsoft C++ 异常:在内存位置长”:
pDev->DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 0, m_Size * m_Size, 0, m_TriangleCount);
pDev 是 LPDIRECT3DDEVICE9,我使用的是 DirectX 9.0。
我不知道“长在内存位置”的确切含义。
为什么在这一行打印消息?
您应该忽略在“输出”窗口中看到的任何“第一次机会异常”消息,该消息仅显示 DirectX 管道内部使用的异常来处理错误情况。异常只有在没有被捕获时才是致命的。
你永远不应该忽略的是 DrawIndexedPrimitive() 的返回值。它返回一个 HRESULT,一个指示函数调用是否成功的状态码。粗略的代码应该是这样的:
HRESULT hr = pDev->DrawIndexedPrimitive(...);
if (FAILED(hr)) {
// Report error code stored in "hr" and terminate
//...
}