Windows核心编程C/C++读书笔记
Posted 水澹澹兮生烟.
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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函数来确定额外的信息。
以上是关于Windows核心编程C/C++读书笔记的主要内容,如果未能解决你的问题,请参考以下文章