मैं 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() विफल रहता है और मैं इसे फिर से उपयोग करने GetLastError() के साथ देखने के लिए क्यों FormatMessage() विफल रहता है: "सिस्टम संदेश संख्या% 2 के लिए संदेश फ़ाइल में 0x% 1 के लिए संदेश पाठ नहीं मिल सकता है । " DXGetErrorString()
और DXGetErrorDescription()
-
_com_error.ErrorMessage() मुझे "अज्ञात त्रुटि 0x8876086c"
Btw: वहाँ एक आम तरीका सभी HRESULT के लिए त्रुटि तार पाने के लिए है? – LeOpArD
वास्तव में नहीं, त्रुटि कोड और संदेश वर्गीकृत हैं। उदाहरण के लिए, नेटवर्क सबसिस्टम का अपना कोड और संदेश हैं, DX तो तुम आपरेशन का एक प्रकार आप संदेश त्रुटि मिल रहा है करने के लिए इसी प्राप्त करने के लिए प्रदर्शन कर रहे थे पता होना चाहिए अपने स्वयं के, आदि है। –
त्रुटि कोड के लिए d3d9.h शीर्षलेख फ़ाइल देखें। आप D3DERR_INVALIDCALL के साथ एक मैच मिल जाएगा, स्ट्रिंग में बताने के लिए तुम क्यों अमान्य तर्क पारित नहीं किया जा रहा है। न ही आपका स्निपेट करता है। –