- /*
- Error Handling Part 1
- 当我们调用Windows函数的时候,函数会验证我们给它传递的参数,如果参数不
- 正确或由于其它一些原因函数没能正确执行,则函数会以返回值的形式告诉调用
- 者函数出错了。
- 常见的返回值:
- VOID:
- 这种函数值说明函数不可能出错,只有极少数的Windows函数不会出错。
- BOOL:
- 函数失败时返回0,成功时返回非0。所以我们检查函数是否成功时要避免
- 看返回值是否等于TRUE,而是要看返回值是否不等于FALSE。
- HANDLE:
- 失败时通常为NULL,否则就返回一个我们可以使用对象的句柄。
- 需要注意的是,有些函数会返回INVALID_HANDLE_VALUE即-1,对于这种情况,
- 需要查看MSDN以确定是NULL代表失败还是INVALID_HANDLE_VALUE代表失败。
- PVOID:
- 失败时返回NULL,否则就返回一个数据块的内存地址。
- LONG/DWORD:
- 这类返回值比较严格。函数的作用一般是检查指定对象的数目。由于一些原因,
- 如果函数不能检查出指定对象的具体数目,则通常会返回0或-1,此时我们
- 就需要查看资料以明确哪种方式代表函数执行失败。
- */
- //
- // MessageId: ERROR_INVALID_FUNCTION
- //
- // MessageText:
- //
- // Incorrect function.
- //
- #define ERROR_INVALID_FUNCTION 1L // dderror
- //
- /*
- 如果函数失败而我们也想知道失败的原因,可以在失败的函数后立即调用函数
- GetLastError,记住是立即调用,不然如果你在期间又调用了其它函数,失败
- 函数的错误码可能会被覆盖。
- 一个错误码的格式如上所示,其由三部分组成,一个标识符,一个英文描述和
- 一个数值。
- GetLastError不仅可以告诉编程人员函数出错的原因,而且也可以告诉编程人员
- 函数成功执行的原因,因为一个函数的成功执行可能是由多个原因中的一个导致
- 的。这时候我们调用GetLastError,它就会给我们返回成功的具体原因。
- */
- /*
- 在调试代码的时候,我们可以配置Visual Studio时刻显示当前线程的最后错误码
- 及其描述,配置方式就是调用窗口的Watch窗口中的任一行输入$err,hr,具体效果
- 可参考图一。
- 另外,VS也提供了一个小功能Error Lookup,通过它,我们输入错误友就可以看到
- 错误的描述。具体可参考图二。
- */
函数错误处理一(总结自windows编程核心)
最新推荐文章于 2025-03-09 11:28:49 发布