DirectX 9의 오류 문자열을 검색하고 싶지만 웹에서 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()는 실패하고 내가하는 formatMessage()가 실패하는 이유를 GetLastError()를 다시 사용 : 는 "이 시스템은 메시지 번호 % 2에 대한 메시지 파일에 대해 0x % 1에 대한 메시지 텍스트를 찾을 수 없습니다 . " DXGetErrorString()
및 DXGetErrorDescription()
-
_com_error.ErrorMessage()가 "알 수없는 오류 0x8876086c"
BTW : 모든 HRESULT에 대한 오류 문자열을 얻을 수있는 일반적인 방법이있다? – LeOpArD
실제로는 오류 코드와 메시지가 분류됩니다. 예를 들어, 네트워크 하위 시스템은 고유 한 코드와 메시지를 가지고 있으며, DX는 자체적으로 코드를 가지고 있습니다. 따라서 여러분은 여러분이 얻고있는 오류에 대응하는 메시지를 얻기 위해 수행하고있는 작업 유형을 알아야합니다. –
오류 코드에 대한 d3d9.h 헤더 파일을보십시오. D3DERR_INVALIDCALL과 일치하는 것을 찾을 수 있습니다. 문자열은 잘못된 인수를 전달한 이유를 알려주지 않습니다. 당신의 스 니펫도 아닙니다. –