DirectX 9のエラー文字列を取得したいのですが、WebでFormatMessage()と_com_error.ErrorMessage()を使用しています。どうすれば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()は失敗し、私はGetLastErrorを(再びそれを使用)のFormatMessage()が失敗した理由を参照するには: 「システムは%2のメッセージファイルでメッセージ番号0x%1のメッセージのテキストを見つけることができません" DXGetErrorString()
とDXGetErrorDescription()
-
_com_error.ErrorMessageは()DirectXのエラーメッセージを取得するには、 "不明なエラー0x8876086c"
ところで:すべてのHRESULTのエラー文字列を取得する一般的な方法はありますか? – LeOpArD
エラーコードとメッセージは分類されていません。たとえば、ネットワークサブシステムには独自のコードとメッセージがあり、DXには独自のコードがあります。したがって、取得したエラーに対応するメッセージを取得するために実行していた操作の種類を知る必要があります。 –
エラーコードについては、d3d9.hヘッダーファイルを参照してください。 D3DERR_INVALIDCALLと一致するものが見つかるでしょう。文字列は無効な引数を渡した理由を示しません。あなたのスニペットもありません。 –