错误处理机制:
当调用windows函数时,它会先检验我们传递给它的参数,然后才开始执行任务。如果传入的参数无效或者由于其他原因导致操作系统无法执行,则函数的返回值将指出函数因为某些原因失败了。而当调用windows函数检测到错误时,它会使用一种名为“线程本地存储区”的机制将相应的错误码与“主调线程”想关联。(即学习笔记之线程基础所说,每一个线程都有自己的数据存储区,而函数将其错误码填入线程的数据存储区的错误代码内容,使其想关联)这种机制可以是线程之间能独立运行, 不会互相干扰对方的错误代码。
查看错误代码:
每一个错误都有3种表示:一个错误代码id;错误描述文本,一个编码(避免使用,应用错误代码id)
当调用一个windows函数过后,程序可以通过调用函数:
DWORD GetLastError();
来获取错误代码ID,然后可以使用Visual Studio编译器的一个外部工具错误查找工具(工具/错误查找工具)来查询错误描述文本,以明确程序的错误。
错误查找工具的实现:
错误查找工具的具体实现主要依赖于函数:
DWORD WINAPI FormatMessage( __in DWORD dwFlags, __in LPCVOID lpSource, __in DWORD dwMessageId, __in DWORD dwLanguageId, __out LPTSTR lpBuffer, __in DWORD nSize, __in va_list* Arguments );
此函数通过错误代码ID来获取错误文本描述。