Исключение Microsoft C++: долго в памяти

Я увидел "Исключение Microsoft C++: длинное место в памяти" в этой строке:
pDev->DrawIndexedPrimitive(D3DPT_TRIANGLELIST, 0, 0, m_Size * m_Size, 0, m_TriangleCount);

pDev - это LPDIRECT3DDEVICE9, и я использовал DirectX 9.0.
Я не знаю, что именно означает "долго в ячейке памяти".
Почему сообщение печатается в этой строке?


person Gimun Eom    schedule 12.08.2012    source источник


Ответы (1)


Вы должны игнорировать любое сообщение об «исключении первого шанса», которое вы видите в окне «Вывод», которое просто показывает исключения, используемые внутри DirectX для обработки ошибок. Исключение является фатальным только тогда, когда оно не поймано.

Что вы должны никогда игнорировать, так это возвращаемое значение DrawIndexedPrimitive(). Он возвращает HRESULT, код состояния, указывающий, был ли вызов функции успешным. Грубый код должен выглядеть так:

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