Desidero recuperare le stringhe di errore per DirectX 9, ma sul Web posso trovare il file FormatMessage() e _com_error.ErrorMessage(), entrambi i quali non riescono.Come recuperare stringhe di errori per DirectX 9
hr = g_pd3dDevice->GetRenderTargetData(...
... // the debugger tells me hr = 0x8876086c
FormatMessage(FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM | FORMAT_MESSAGE_IGNORE_INSERTS,
NULL, hr, 0, (LPTSTR)&lpBuf, 0, NULL))
// it returns 0 with lpBuf unallocated
FormatMessage() non riesce e io uso il nuovo con GetLastError() per vedere perché FormatMessage() ha esito negativo: "Il sistema non riesce a trovare il testo del messaggio per il numero di messaggio 0x% 1 nel file di messaggio per% 2 ".
_com_error.ErrorMessage() mi dice "Errore 0x8876086c sconosciuto"
BTW: c'è un modo comune per ottenere stringhe di errore per tutti HRESULT? – LeOpArD
In realtà, i codici di errore e i messaggi sono classificati. Ad esempio, il sottosistema di rete ha i propri codici e messaggi, DX ha il suo, ecc. Quindi è necessario conoscere un tipo di operazione che si stava eseguendo per ottenere un messaggio corrispondente all'errore che si sta ottenendo. –
Guarda il file di intestazione d3d9.h per i codici di errore. Troverai una corrispondenza con D3DERR_INVALIDCALL, la stringa non ti dirà perché hai passato argomenti non validi. Neanche il tuo frammento. –