chapter 1: windows错误处理

来源:互联网 发布:windows屏保 编辑:程序博客网 时间:2024/06/05 04:02

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



原创粉丝点击