GetLastError()的用法
来源:互联网 发布:阿里云体系架构 编辑:程序博客网 时间:2024/05/08 01:03
http://msdn.microsoft.com/en-us/library/ms679360(VS.85).aspx
在VC中编写应用程序时,经常需要涉及到错误处理问题。许多函数调用只用TRUE和FALSE来表明函数的运行结果。一旦出现错误,MSDN中往往会指出请用GetLastError()函数来获得错误原因。可问题是,GetLastError()返回的只是一个双字节数值(DWORD)。OH,MY GOD!目前Win32的出错编号已经从0排到11031,而这还不是错误编码的全部。因为错误代码还在不断增加。
我想没有人愿意自己去查出错编码所对应的错误信息。好在Windows(Windows95以上, Window NT 3.1以上)已经提供了现成的错误信息处理函数:FormatMessage()。 以下是用FormatMessage()得到由GetLastError()返回的出错编码所对应错误信息的示例:
LPVOID lpMsgBuf;
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER |
FORMAT_MESSAGE_FROM_SYSTEM |
FORMAT_MESSAGE_IGNORE_INSERTS,
NULL,
GetLastError(),
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
(LPTSTR) &lpMsgBuf,
0,
NULL
);
// Process any inserts in lpMsgBuf.
//显示错误信息
MessageBox( (LPCTSTR)lpMsgBuf);
// Free the buffer.
LocalFree( lpMsgBuf );
windowsAPI函数所以头文件--#include<windows.h>
FormatMessage()功能就是将GetLastError得到的错误信息(这个错误信息是数字代号)转化成字符串信息的函数
函数FormatMessage声明如下:
WINBASEAPI
DWORD WINAPI FormatMessageA(
DWORD dwFlags, //错误信息类型标志
LPCVOID lpSource, //指定本地信息定义 其依赖于第一个参数的设置
DWORD dwMessageId, //指定被请求的消息标示,如果dwFlags设置
//为 FORMAT_MESSAGE_FROM_STRING 这个参数将被忽略
DWORD dwLanguageId, //指定被请求的消息的语言标示
LPSTR lpBuffer, //用来保存格式话后的消息字符串的地址
DWORD nSize, //如果第一个参数为指定FORMAT_MESSAGE_ALLOCATE_BUFFER
// 这个参数就是字符串的最大长度
va_list * Arguments
);
- GetLastError()的用法
- GetLastError()函数的用法
- GetLastError用法
- 从GetLastError想到的
- GetLastError()函数的介绍
- GetLastError的返回值
- GetLastError的error详解
- GetLastError的127错误
- 关于GetLastError的学习
- GetLastError的使用
- GetLastError
- GetLastError()
- GetLastError
- GetLastError
- GetLastError
- GetLastError
- GetLastError
- GetLastError
- Epoll简介以及例子
- VS2010结合Github进行版本控制
- lex&yacc环境配置
- Java程序员应该知道的10个调试技巧
- epoll_create epoll_ctl epoll_wait close epoll和select的简单比较 (read和write或send和recv当返回值<0且errno=EAGAIN表示
- GetLastError()的用法
- tapestry5.3.3在线视频教程网址
- 又学了点java编程的技巧,关于编程语言中与用户交互对话框的应用
- c#学习笔记3
- 相约世纪末
- GetLastError
- 多线程与窗体显示
- C++笔试题
- 我的书柜