için hata dizelerini nasıl alabilirim? DirectX 9 için hata dizeleri almak istiyorum, ancak web üzerinde bulamadığım FormatMessage() ve _com_error.ErrorMessage() işlevlerini kullanıyorum.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() başarısız ve ben FormatMessage() başarısız nedenini görmek için GetLastError() ile yeniden kullanmak: "sistem mesajı numarası% 2 için ileti dosyası içinde 0x% 1 için ileti metnini bulamıyor ." DXGetErrorString()
ve DXGetErrorDescription()
-
_com_error.ErrorMessage() "Bilinmeyen hata 0x8876086c"
BTW: Tüm HRESULT hata dizeleri almak için ortak bir yol var? – LeOpArD
Gerçekten değil, hata kodları ve mesajlar kategorize edilir. Örneğin, ağ alt sistemi kendi kodlarına ve mesajlarına sahiptir, DX'in kendine ait vb. Bu nedenle, aldığınız hatayı gösteren bir mesaj almak için gerçekleştirdiğiniz bir işlem türünü bilmeniz gerekir. –
Hata kodları için d3d9.h başlık dosyasına bakın. D3DERR_INVALIDCALL ile bir eşleşme bulacaksınız, dize neden geçersiz argümanları geçtiğini söylemeyecek. Snippet'iniz de yok. –