【Windows】三種類型的錯誤碼轉換

Win32的API一般使用Win32的錯誤碼(GetLastError獲取的就是),而COM API使用的HRESULT類型的錯誤碼,內核和Native API則一般使用NTSTATUS類型的錯誤碼。
因為歷史原因和兼容需要,不少Win32 API返回的win32錯誤碼有不同的形式,如GetLastError返回的是DWORD,而注冊表操作的API如RegOpenKeyEx返回LONG,但都是同一類的win32錯誤碼。
這里列舉下這三種類型的錯誤碼如何互相轉換:
HRESULT <-> Win32:不需要轉換
NTSTATUS -> Win32:LsaNtStatusToWinError()
NTSTATUS -> HRESULT:HRESULT_FROM_WIN32( LsaNtStatusToWinError())
HRESULT -> NTSTATUS:不需要轉換

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,948評論 18 139
  • Spring Boot 參考指南 介紹 轉載自:https://www.gitbook.com/book/qbgb...
    毛宇鵬閱讀 46,958評論 6 342
  • 姓名:莫益彰 學號:16030140019 【嵌牛導讀】:串口通信是指外設和計算機間,通過數據信號線 、地線、控制...
    換個名字消消毒閱讀 1,626評論 1 5
  • error code(錯誤代碼)=2000是無效的像素格式。error code(錯誤代碼)=2001是指定的驅動...
    Heikki_閱讀 1,860評論 0 4
  • 人早晚被生活打敗,只是你堅持到下半場的什么時候,換人名額用完,體力用光,最終還是會被生活打敗,所以當你有能力的時候...
    高舒曼閱讀 248評論 0 0