软件开发

windows编程错误处理

最近再看一本《windows核心编程》,深入学习一些东西。

 

一个返回值是BOOL类型的函数,失败返回0,否则返回一个非0的值,而非0值有可能代表别的含义,所以判断一个函数执行是否成功最稳妥的方法是和FALSE比较,而不是和TRUE比较。

 

windows能返回错误代码,有助于我们理解函数调用失败的原因,WinError.h文件中定义了所有的错误代码和含义,每个代码是一个32位整数。

 

 

在内部,当windows函数检测到错误时,不同线程不会互相干扰错误代码,调用GetLastError函数可以查看错误代码。每个错误代码有三部份组成,消息id、消息文本、编号。VS的调试器有一个很有用的功能,在监视窗口中选择一行输入$err,hr,就可以查看错误代码和含义了。

VS监视窗口
VS监视窗口

 

 

还有一个FormatMessage函数可以将错误代码转换成文本描述,而且是支持多种语言的。也可以使用SetLastError函数定义自己的错误代码。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据