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:不需要轉換
【Windows】三種類型的錯誤碼轉換
最后編輯于 :
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。