windows - win10錯誤碼0x80070570 - 顯示卡停用錯誤代碼43




COM錯誤代碼的最佳信息來源是什麼? (3)

您的%PROGRAMFILES%[Visual Studio的某些版本] \ Tools Common7 \文件夾中的錯誤查找(ErrLook.exe)會經常給您提供錯誤消息,但並非總是如此:

    |---------------------------------------------------|
    | [] Error Lookup                                   |
    |---------------------------------------------------|
    |   Value: [0x80004027]                             |
    |                                                   |
    |   Error Message                                   |
    |   +---------------------------------------------+ |
    |   |The component or application containing the  | |
    |   |component has been disabled                  | |
    |   |                                             | |
    |   +---------------------------------------------+ |
    |   [Modules...]    [Look up]    [Close]    [Help]  |
    |----------------------------------------------------

如果這不起作用,您可以從這裡獲得一些建議: http : //blogs.msdn.com/oldnewthing/archive/2008/09/01/8914664.aspx

(錯誤查找只需使用FORMAT_MESSAGE_FROM_SYSTEM標誌調用FormatMessage()

如果COM錯誤不是系統錯誤,則可能還需要檢查引發錯誤的組件的文檔。

如果您正在捕獲代碼中的錯誤,則可以希望組件實現豐富的錯誤(GetErrorInfo(),與VB中的Err對象相同),以便可以獲得描述問題的完整消息。

當你所擁有的是HRESULT的時候,我不知道從哪裡得到關於意義的最佳信息,可能的原因和可能的解決方案來解決COM錯誤。

在Google搜索“80004027”這樣的術語幾乎毫無用處,因為它會將您發送到隨機討論組,其中90%的時間是“80004027是什麼意思”的問題。 沒有回答。

這是什麼資源? 為什麼MSDN不是Google的最高成績?


我總是使用WinError.h。 這絕大多數Windows錯誤代碼的種類。

要注意的一個關鍵指標是代碼的設施部分:第二個最重要的字節。 也就是0x80nnmmmm,其中nn是Facility。 這告訴你哪個組件生成的代碼。 任何與7設施是一個Windows錯誤代碼重新包裝為一個HRESULT,您應該將低位字轉換為十進制,並在WinError.h中查找它。 也有錯誤範圍出現在他們自己的頭文件中(例如,12000 - 12999之間的任何內容都是WinInet錯誤代碼,您應該在WinInet.h中查找)。

查找錯誤代碼會給出符號名稱,這可能在代碼本身或錯誤消息的措辭的更多文檔中找到。

FACILITY_ITF(值為4,所以這些HRESULT從0x8004開始)表示錯誤是由您正在使用的接口定義的; 你必須檢查這個接口來找出它的含義。

最後,COM還提供IErrorInfo接口來檢索擴展的錯誤信息:調用GetErrorInfo來檢索錯誤對象。 您將不得不查詢ISupportErrorInfo並調用該接口的InterfaceSupportsErrorInfo方法來確定您調用的接口實際上是否設置了錯誤對象(當然,如果它是模板代碼,則可能是謊言)。








com