如何由一串十進位的錯誤碼,取得真正有意義的錯誤碼?

其實這個蠻沒有營養的,但還是寫一下好了...

在 Windows 系統 (Win32) 中,錯誤代碼都是使用一組 4 bytes 的 DWORD (double word,雙字組代碼) 組成的,一般可以在 MSDN 查到的錯誤碼幾乎都是 0x 開頭的,這是代表它是 16 進位數字 (Hex number),像最常看到的 0x8004005,但通常在程式中攔到的錯誤訊息代碼都是十進位,像是 -2147016662 這種,那你要如何將它還原為 16 進位的代碼?

其實很簡單,只要用 Windows 的小算盤即可:

1. 將小算盤的模式換成工程型,並且確定目前是在十進位的模式(例如 -2147016662)。

2. 將錯誤訊息代碼 (十進位數字) 貼到小算盤中。

3. 選擇十六進位模式,並且在右邊選擇 DWORD,此時會轉換成十六進位的 DWORD 數值(例如 8007202A),這個數值才是在 MSDN 中常見的錯誤碼,可將它複製出來再搜尋 MSDN (前面要加 0x,例如 0x8007202A)。

不過這是使用小算盤的方法,程式碼也可以處理(例如 errorCode.ToString("x"); )。