上QQ阅读APP看书,第一时间看更新
1.5.1 Error Lookup工具的使用
Error Lookup工具可以在VC6的“ToolS”菜单中找到,它可以对GetLastError()函数提供的出错代码进行解释,解释为可以理解的文字描述。下面通过一个非常简单的程序来解释该工具的使用。
例子代码如下:
#include <windows.h> #include <stdio.h> int main() { HANDLE hFile = CreateFile("c:\\test.txt", GENERIC_READ, FILE_SHARE_READ, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); if ( hFile == INVALID_HANDLE_VALUE ) { printf("Err Code = %d \r\n", GetLastError()); } return 0; }
这段代码非常短小,主要是通过CreateFile()函数打开一个已经存在的文件,但是这里传递给函数的第1个参数“c:\\test.txt”是一个不存在的文件,那么CreateFile()对c:\\test.txt文件的打开必然会错误。当打开错误时,程序调用GetLastError()函数会得到一个错误码,并通过printf()进行输出。
编译运行这个程序,看到命令行中输出字符串“Err Code=2”,说明GetLastError()函数得到的错误码为“2”。有了这个错误码,通过VC6的“ToolS”菜单打开“Error Lookup”工具,在“Value”处输入“2”,然后单击“Look up”按钮,就可以看到错误码的解释为“系统找不到指定的文件”,如图1-17所示。
图1-17 “Error Lookup”工具
在平时写程序的时候,要养成对函数的返回值进行判断的习惯。在编写程序的时候,当调用CreateFile()函数时,指定文件的参数可能是由用户提供的。而当用户指定的文件不存在时,同样会报错。在代码中调用FormatMessage()函数可以将GetLastError()函数的错误码转换为错误描述。(提示:这里只是说明在代码中如何将GetLastError()的错误码转换为错误描述,建议在真正写程序时自行对用户的输入进行判断过滤,以保证程序的健壮性。)