数据类型 | 指出函数调用失败的值 |
---|---|
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
自己写错误