我有用C#編寫的COM對象。在某些情況下,如果遇到錯誤(例如throw new Exception("error message")
),COM對象可能會拋出帶有描述性消息的Exception。在調用C#COM對象後從C++的HRESULT中檢索錯誤消息
此COM對象從VB6代碼和C++代碼中調用。
從VB6代碼中,我可以使用Err.Message
檢索錯誤消息。
在C++中,我得到了System.Exception文檔中指定的HRESULT 0x80131500。
一旦我在C++中有了這個HRESULT,我怎樣才能得到異常(Exception.Message
)的錯誤信息,就像VB6中Err.Message
返回的信息一樣?
我搜索了網頁,發現了一些使用FormatMessage
和_com_error
的例子,但沒有一個返回我想要的消息。
你試過IErrorInfo嗎?檢查'winerror.h'什麼'HRESULT'定義的設施。我強烈懷疑這是用戶定義的工具,這意味着要求對象。 –
'_com_error'似乎是答案。爲什麼你沒有運氣,很難說,因爲你沒有顯示你的代碼。 –
@ Cheersandhth.-Alf'_com_error'依賴於'IErrorInfo'。 –