1.windows函数返回值及错误处理
VOID
BOOL
HANDLE 失败通常为NULL,或者为INVALID_HANDLE_VALUE(-1)
PVOID 失败返回NULL,否则返回一个数据块的内存地址
LONG/DWORD 通常返回计数,查看SDK
2.windows函数内部错误处理(查看错误)
原理:使用“线程本地存储区”把错误和“主调线程”关联。
程序中,可以调用 DWORD GetLastError(); 获得错误代码,其解释在 WinError.h 中,
函数返回32位的编号,对应为消息ID(即宏)。
*3.在VS中设置显示上一次错误代码和错误描述:
3.1 调试时,在Watch窗口中选择一行输入$err,hr。
3.2 使用ErrorLookup: 查看错误代码的描述。
3.3 使用FormatMessage函数可以将错误代码转换为描述。(自己制作message table)
*windows操作系统并不维护错误代码
4.定义自己的错误代码:
4.1 错误出现时,使用 VOID SetLastError(DWORD dwErrCode)
4.2 若自己定义错误代码,则第29位必须为1(表示自定义代码),使用Message Compiler(MC.exe)
5.示例程序,ErrorShow
FormatMessage函数使用方法;
获得操作系统默认语言;
获得Dll模块中的错误代码;......
http://wintellect.com/Books.aspx