Windows核心编程C/C++读书笔记

目录

第一章 错误处理


在遇到问题的时候要经常使用GetLastError()

第一章 错误处理

调用windows函数时,他会先验证我们所给传入的参数,然后开始执行。如果传入参数无效,或者其他原因导致无法执行,则函数的返回值将指出函数因为某些原因失败了。

在这里重点说明一个Win常见函数的返回值数据类型:HANDLE,LONG/DWORD

HANDLE:如果函数失败,则返回NULL;否则,HANDLE将标识一个可操纵的对象。请注意这种返回值,因为某些函数返回为INVALID_HANDLE_VALUE的一个句柄值,他被定义为-1。函数Platform DK文档清楚的说明了函数时返回NULL还是INVALID_HANDLE_VALUE标识失败的。

LONG/DWORD:返回计数的函数通常会返回一个LONG或者DWORD。如果函数出于某种原因不能对我们想要计数的东西进行计数,通常会返回0或者-1(具体取决于函数)。

当Windows函数检测有错误时,他会使用线程本地存储区的机制将相应的错误代码与主调线程(即就是发出调用的线程),关联到一起,这种机制时不同的线程能独立运行,不会出现相互干扰的情况。当要具体查看错误,可以调用GetLastError函数。

DWORD GetLastError();

每个错误都有三种表示:消息ID(在源代码中使用的宏,用于GetLastError的返回值进行比较);消息文本;一个编号(应该避免使用此编号,尽量使用消息ID)。

当windows函数返回失败应立即调用GetLastError,因为假如有调用另一个windows函数,则值很可能被改写。再调用成功时也可以调用GetLastError函数来确定额外的信息。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值