怎样在win7系统安装hp6l打印机驱动
番茄系统家园 · 2021-08-05 23:55:49

VC++6.0核心编程源码.rar
第一部分程序员必读
第一章对程序错误的处理
在我们开始介绍应该提供的许多特性之前,我们首先必须了解的各个函数是如何进行错误处理的。
当你调用一个函数时,它首先要检验你传递给它的的各个参数的有效性,然后再设法执行它的任务。如果你传递了一个无效参数,或者由于某种原因它无法执行这项操作,那么该函数就会返回一个值,指明该函数在某种程度上运行失败了。表1-1列出了大多数函数使用的数据类型的返回值。
表1-函数常用的返回值类型
数据类型表示失败的值
VOID该函数的运行不可能失败。函数的返回值类型很少
是VOID。
BOLL如果函数运行失败,那么返回值是0,否则返回的是非0值。最
好对返回值进行测试,以确定它是0还是非0。如果它是TRUE
,则不要测试返回值。
如果函数运行失败,则返回值通常是NULL,否则返回值为
,,用于标识你可以操作的一个对象。对于这个返回
值,你应该小心处理,因为有些函数会返回一个句柄
值,它被定义为-1。该函数的
PlatformSDK资料将会清楚地说明该函数是返回NULL还
是INVALID_HANDLE_VALID,以便指明函数运行已经失败。
PVOID如果函数运行失败,则返回值是NULL,否则返回PVOID,以
标识数据块的内存地址。
LONG/DWORD这是个难以处理的值。返回数量的函数通常返回LONG
或DWORD。如果由于某种原因,函数无法对你想要进行计数
的对象进行计数,那么该函数通常返回0或-1(根据该函数而定)
。如果你调用的函数返回了LONG/DWORD,那么请认真阅
读PlatformSDK资料,以确保你能正确检查潜在的错误。
当一个Windows函数返回一个错误代码时,它常常可以用来了解函数为什么会运行失败。Microsoft公司编译了一个所有可能的错误代码的列表,并且为每个错误代码分配了一个32位的号码。
从系统内部来讲,当一个Windows函数检测到一个错误时,它会使用一个称为线程本地存储器的机制,将相应的错误代码号码与调用的线程关联起来。(“线程本地存储器”将在第21章中介绍)。这将使线程能够互相独立地运行,而不会影响各自的错误代码。当函数返回给你时,它的返回值就能指明一个错误已经发生。若要确定这是个什么错误,请调用GetLastError函数:
见原书P4的程序(1)
该函数只返回线程的32位错误代码。
当你拥有32位错误代码的号码时,你必须将该号码转换成更有用的某种对象。WinError.h头文件包含了Microsoft公司定义的错误代码的列表。下面我显示了该列表的某些内容,使你能够看到它的大概样子:
见原书P4的程序(2)和P5的程序
你可以看到,每个错误都有3种表示法:即一个消息ID(这是你可以在源代码中使用的一个宏,以便与GetLastError的返回值进行比较),消息文本(对错误的英文描述)和一个号码(你应该避免使用这个号码,而应该使用消息ID)。请记住,我只选择了WinError.h头文件中的很少一部分内容来向你进行展示,整个文件的长度超过21000行。
当Windows函数运行失败时,你应该立即调用GetLastError函数,否则,如果你调用另一个Windows函数,它的值很可能被改写。
说明GetLastError能返回线程产生的最后一个错误。如果该线程调用的Windows
函数运行成功,那么最后一个错误代码就不被改写,并且不指明运行成功。有少
数Windows函数并不遵循这一规则,并且它会更改最后的错
立即下载
免责声明: 凡标注转载/编译字样内容并非本站原创,转载目的在于传递更多信息,并不代表本网赞同其观点和对其真实性负责。如果你觉得本文好,欢迎推荐给朋友阅读;本文链接: https://m.nndssk.com/post/24846.html。
