我想检索 DirectX 9 的错误字符串,但我可以在网上找到正在使用 FormatMessage() 和 _com_error.ErrorMessage(),这两个都让我失败了。
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 的消息文本。”
_com_error.ErrorMessage() 告诉我“未知错误 0x8876086c”