从系统内部来讲,当一个Windows函数检测到一个错误时,它会使用一个称为线程本地存储器(thread-localstorage)的机制。
当函数返回时,它的返回值就能指明一个错误已经发生。若要确定这是个什么错误,请调用GetLastError函数:
该函数只返回线程的32位错误代码。当你拥有32位错误代码的号码时,必须将该号码转换成更有用的某种对象。
WinError.h头文件包含了Microsoft公司定义的错误代码的列表
每个错误都有3种表示法:一个消息ID(这是你可以在源代码中使用的一个宏,
以便与GetLastError的返回值进行比较),消息文本(对错误的英文描述)和一个号码(应该避免使用这个号码,可使用消息I D)。
当Windows函数运行失败时,应该立即调用GetLastError函数。如果调用另一个Windows函数,它的值很可能被改写。
进行调试的时候,监控线程的最后错误代码是非常有用的。在Microsoft Visual studio 6.0中,Microsoft的调试程序支持一个非常有用的特性,即可以配置Watch窗口,以便始终都能显示线程的最后错误代码的号码和该错误的英文描述。
Visual studio还配有一个小的实用程序,称为Error Lookup.
如果在编写的应用程序中发现一个错误,可能想要向用户显示该错误的文本描述。Windows提供了一个函数,可以将错误代码转换成它的文本描述。该函数称为For matMessage.