函数错误处理一(总结自windows编程核心)

  1. /*
  2.     Error Handling Part 1
  3.     当我们调用Windows函数的时候,函数会验证我们给它传递的参数,如果参数不
  4.     正确或由于其它一些原因函数没能正确执行,则函数会以返回值的形式告诉调用
  5.     者函数出错了。
  6.     常见的返回值:
  7.     VOID:
  8.         这种函数值说明函数不可能出错,只有极少数的Windows函数不会出错。
  9.     BOOL:
  10.         函数失败时返回0,成功时返回非0。所以我们检查函数是否成功时要避免
  11.         看返回值是否等于TRUE,而是要看返回值是否不等于FALSE。
  12.     HANDLE:
  13.         失败时通常为NULL,否则就返回一个我们可以使用对象的句柄。
  14.         需要注意的是,有些函数会返回INVALID_HANDLE_VALUE即-1,对于这种情况,
  15.         需要查看MSDN以确定是NULL代表失败还是INVALID_HANDLE_VALUE代表失败。
  16.     PVOID:
  17.         失败时返回NULL,否则就返回一个数据块的内存地址。
  18.     LONG/DWORD:
  19.         这类返回值比较严格。函数的作用一般是检查指定对象的数目。由于一些原因,
  20.         如果函数不能检查出指定对象的具体数目,则通常会返回0或-1,此时我们
  21.         就需要查看资料以明确哪种方式代表函数执行失败。
  22. */
  23. //
  24. // MessageId: ERROR_INVALID_FUNCTION
  25. //
  26. // MessageText:
  27. //
  28. // Incorrect function.
  29. //
  30. #define ERROR_INVALID_FUNCTION          1L // dderror
  31. //
  32. /*
  33.     如果函数失败而我们也想知道失败的原因,可以在失败的函数后立即调用函数
  34.     GetLastError,记住是立即调用,不然如果你在期间又调用了其它函数,失败
  35.     函数的错误码可能会被覆盖。
  36.     一个错误码的格式如上所示,其由三部分组成,一个标识符,一个英文描述和
  37.     一个数值。
  38.     GetLastError不仅可以告诉编程人员函数出错的原因,而且也可以告诉编程人员
  39.     函数成功执行的原因,因为一个函数的成功执行可能是由多个原因中的一个导致
  40.     的。这时候我们调用GetLastError,它就会给我们返回成功的具体原因。
  41. */
  42. /*
  43.     在调试代码的时候,我们可以配置Visual Studio时刻显示当前线程的最后错误码
  44.     及其描述,配置方式就是调用窗口的Watch窗口中的任一行输入$err,hr,具体效果
  45.     可参考图一。
  46.     另外,VS也提供了一个小功能Error Lookup,通过它,我们输入错误友就可以看到
  47.     错误的描述。具体可参考图二。
  48. */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值