我学习Windows核心编程 之一 对程序的错误处理

来源:互联网 发布:知乎精选rss 编辑:程序博客网 时间:2024/05/18 00:07

当调用一个函数时,它首先要检验传递给它的的各个参数的有效性务。

设定线程的错误代码:void  SetLastError(DWORD  dwErrCode)
       dwErrCode:可是在WinError.h中定义的,也可以自己定义(必须遵循如下规则):
             0  -15 位:异常代码(Microsoft或用户自己定义)
             16 -27位:设备代码(Microsoft定义,呵呵,详见MSDN)
                       28位:保留,必须为0
                       29位:0表示Microsoft定义的,1表示用户定义的
              30-31位:严重性,0成功,1供参考,2警告,3错误

返回线程的最后一个错误代码:DWORD  GetLastError(void)

得到错误代码对应的提示信息:
       DWORD  FormatMessage(
                         DWORD  dwFlags,// FORMAT_MESSAGE_ALLOCATE_BUFFER |
                                                                 FORMAT_MESSAGE_FROM_SYSTEM |
                                                                 FORMAT_MESSAGE_IGNORE_INSERTS
                       LPCVOID  lpSource,// NULL
                         DWORD  dwMessageID,// GetLastError()
                         DWORD  dwLanguageID,// MAKELANGID(LANG_NEUTRAL , SUBLANG_DEFAULT)
                         LPTSTR  lpBuffer, // output  Buffer
                         DWORD  nSize, // 0
                            va_list   *Arguments  // NULL

         )