第一章 错误处理
所有范例代码可以从 http://www.wintellect.com/books.aspx下载 (改网址已经不可用)
网盘:https://pan.baidu.com/s/1nv1HxxB
本章内容
定义自己的错误代码
ErrorShow实例程序
常见的Windows函数返回值的数据类型
VOID 这个函数不可能失败。只有极少数windows函数的返回类型为VOID
BOOL 如果函数失败,返回0.否则返回一个非0值。避免测试返回值为TRUE应该测试返回是否FALSE
HANDLE 如果函数失败,通常返回NULL,否则HANDLE将返回一个可操作的对象。但是某些函数会返回 INVALID_HANDLE_VALUE(-1)
PVOID 如果调用失败,返回NULL;否之指向一个内存地址
LONG/DWORD (可能返回0或者-1) 具体要参阅MSDN
通常情况下Windows函数能返回错误代码,将有助于我们理解函数调用为什么会失败。
Windows采用Thread Local Storage机制保存一个跟线程相关的错误代码,可以调用GetLastError获取
通常的错误信息定义与WinError.h中
摘录部分
//
// MessageId: ERROR_SUCCESS
//
// MessageText:
//
// The operation completed successfully.
//
#define ERROR_SUCCESS 0L
#define NO_ERROR 0L // dderror
#define SEC_E_OK ((HRESULT)0x00000000L)
//
// MessageId: ERROR_INVALID_FUNCTION
//
// MessageText:
//
// Incorrect function.
//
#define ERROR_INVALID_FUNCTION 1L // dderror
//
// MessageId: ERROR_FILE_NOT_FOUND
//
// MessageText:
//
// The system cannot find the file specified.
//
#define ERROR_FILE_NOT_FOUND 2L
//
// MessageId: ERROR_PATH_N