GetLastError()返回错误对照函数

原创 2005年05月01日 15:33:00

      

       在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.
    // ...
    
    // Display the string.
    MessageBox( NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION );
    
    // Free the buffer.
    LocalFree( lpMsgBuf );
    不过有一点比较可笑,“该函数调用如果出错,将返回0值,需要获取错误信息,请调用GetLastError()”。

GetLastError函数使用及返回代码对照

DWORD i  =  ::GetLastError();      功能:查询LoadIcon()函数返回的错误值   〖0〗-操作成功完成。   〖1〗-功能错误。   〖2〗-系统找不...
  • whui890911
  • whui890911
  • 2015年05月28日 18:35
  • 1393

显示GetLastError函数的错误信息

void ShowErrMsg() {       TCHAR szBuf[80];       LPVOID lpMsgBuf;      DWORD dw = GetLastError();   ...
  • skydesign
  • skydesign
  • 2010年12月16日 09:32
  • 466

应用层通过CreateFile函数调用驱动产生代号为123的错误修正方法

使用CreateFile("\\\\.\\Example",G....)方法调用安装的驱动Example发现返回的Handle始终为-1,调用GetLastError函数查看发现错误代码为123,使用...
  • kezhen
  • kezhen
  • 2012年03月31日 17:37
  • 1914

winsock accept立即返回,GetLastError得到10014错误

在winsock错误代码中,解释有两种原因,在此所表明的是第二种原因。 在accept中设置ClientAddr缓冲区大小时,可能引起此错误。 在初始化intClientAddrLen;时,应使其不小...
  • u010521560
  • u010521560
  • 2016年11月12日 19:38
  • 940

CreateFile GetLastError一直返回2啥情况

网上弄来一个纯真IP数据库,想从中读取一些IP信息。   但是编程的时候打不开这个文件。GetLastError返回2,请问这是为什么   HANDLEhFile=CreateFile("QQWr...
  • u012187684
  • u012187684
  • 2014年02月12日 19:00
  • 1590

vs2010 getlasterror 5

vs2010中 UAC (User Account Control的简称)
  • ren65432
  • ren65432
  • 2014年08月06日 11:03
  • 872

GetLastError 返回错误码 转换到 文本

https://msdn.microsoft.com/en-us/library/ms680582(v=vs.85).aspx MSDN 上的例程,我简化一下成功的话 控制台应该会输出 操作成功完...
  • ONE_SIX_MIX
  • ONE_SIX_MIX
  • 2016年05月15日 14:08
  • 704

GetLastError()函数的介绍

GetLastError()函数的介绍这是一个很简单的函数,它的作用就是取得上一个函数操作时所产生的错误代码。通过错误代码,就可以在winerror.h头文件中查找到每一中错误代码所表示的含义。也可以...
  • hopkins9961629
  • hopkins9961629
  • 2006年01月22日 00:04
  • 11111

OpenProcess调用失败,GetLastError返回5

转自https://social.msdn.microsoft.com/Forums/zh-CN/20e3fc99-1d21-43b5-9bc2-03a52a721dc5/openprocess 现...
  • pony12
  • pony12
  • 2017年04月18日 11:22
  • 993

GetProcAddress()失败 GetLastError() 127

有错误127的代码如下: #include #include //#pragma comment(linker,"/export:add=dllA_old.add") HMODULE ...
  • friendan
  • friendan
  • 2014年05月17日 00:05
  • 9930
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:GetLastError()返回错误对照函数
举报原因:
原因补充:

(最多只允许输入30个字)