windows核心编程之错误处理

数据类型指出函数调用失败的值
VOID这个函数不可能失败。只有极少数Windows函数的返回值类型为VOID
BOOL如果函数失败,返回值为0;否则,返回值是一个非0值。应避免测试返回值是否为TRUE;最稳妥的做法是检查它是否不为FALSE
HANDLE如果函数失败,则返回值通常为NULL;否则,HANDLE将标识一个可以操纵的对象。请注意这种返回值,因为某些函数会返回为INVALID HANDLE VALUE的一个句柄值,它被定义为-1。函数的Platform SDK文档清楚说明了函数是返回NULL还是INVALID HANDLE VALUE来标识失败
PVOID如果函数调用失败,则返回值为NULL;否则,PVOID 将标识个数据块的内存地址
LONG/DWORD这种类型比较棘手。返回计数的函数通常会返回一个LONG或DWORD.如果函数出于某种原因不能对我们想要计数的东西进行计数,它通常会返回0或1(具体取决于函数)。如果要调用一个返回LONG/DWORD的函数,务必仔细阅读PlatformSDK文档,确保我们会正确地检查可能出现的错误

错误代码列表-WinError.h

每个错误都有三种表示

1 消息ID [define后面这个宏]

#define ERROR_FILE_NOT_FOUND

在这里插入图片描述

2 消息文本

在这里插入图片描述

3编号【编号分别为 1 和 2】
在这里插入图片描述

#include<stdio.h>
#include<Windows.h>

int main()
{
	HANDLE hFile = CreateFile(L"E:\\A", 0, 0, NULL, OPEN_EXISTING, 0, NULL);
	DWORD dwErrorCode = GetLastError();
	printf("ErrorCode:%d", dwErrorCode);
	return 0;
}

错误获取方式
1 visual studio 点击工具>错误查找
值为 ErrorCode后面的数据的十六进制

2 为

0x00000002

在这里插入图片描述

在这里插入图片描述
第二种 在监视里面 输入

err,hr

【监视调出方式为 调试>切换断点 然后开始调试 然后 调试>窗口>监视 】
在这里插入图片描述

3
自己写错误
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值