大家好,我是米兰,一个五年级开始编程的小伙。我曾经研究过各种技术,在代码底层摸爬打滚,经历过无数次从入门到放弃的生活,感受过黑暗与毒打。如果你也有相同的经历和探究的问题,欢迎关注我,咱们共同探究,共同进步。
今天我要分享给朋友们的笔记是《Windows核心编程学习笔记(1)错误处理》。为了方便各位朋友,下面我截取了本书的相关章节。
因为这个版本是第四版的,所以有差错请谅解。而我阅读的是第五版,内容方面与第四版完全相同,所以各位读者不必担心。废话不多说,送货!
在内部,当Windows函数检测到错误的发生时,会使用一种名为"线程本地存储区"的机制将相应的错误代码与"主调线程"(即发生调用该函数操作的线程)关联在一起,使不同的线程独立运行,不会出现互相干扰错误代码的情况。下面列举错误的三种表示:
1.一个消息ID(一个可在源代码直接使用的宏名,用于与GetLastError()返回值比较)
2.消息文本(描述错误内容的英文文本)
3.编号(个人理解为宏的具体值,在代码中最好不要直接出现,否则增加代码阅读理解的难度,不利于开发进行)
当函数发生各种不同的错误时,为了使调用者可以通过GetLastError()函数来访问错误代码,以便于观察具体发生的错误而不是直接结束程序,需要我们设置线程的上一个错误代码,再让自己的函数返回这个错误值即可,调用SetLastError()并传入一个32位合适值即可。
最后一点值得注意的是,错误发生后应立即用GetLastError()来诊断错误,成功调用的Windows函数可能使用用ERROR_SUCCESS改写GetLastError()函数的值,这个操作是不可逆。
今天的笔记就到这里了,更多教程和笔记请关注我,由于我是第一次写博客,有很多错误在所难免,欢迎大家指出,大家有疑问也可以多多交流,共同进步,我尽量用通俗易懂的方式向大家述说Windows核心编程,最后再次感谢Jeffrey Richter和Christophe Nasarre大师的亲笔著作。
Windows核心编程学习笔记(1)错误处理
最新推荐文章于 2022-12-08 18:46:44 发布