请问如何知道GetLastError()返回的错误代码对应的错误信息,有什么函数可以获取吗?例如,我的程序中,GetLastError()返回错误代码:8009200c,
我想知道对应的错误信息,该怎么做?谢谢!

解决方案 »

  1.   

    可以用visual studio自带的error lookup来查看,也可以用FormatMessage得到错误描述
      

  2.   

    FormatMessageLPVOID lpMsgBuf;
    if (!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 ))
    {
       // Handle the error.
       return;
    }// Process any inserts in lpMsgBuf.
    // ...// Display the string.
    MessageBox( NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION );// Free the buffer.
    LocalFree( lpMsgBuf );
      

  3.   

    windows核心编程的第一个例子
    要的话,可以发给你
      

  4.   

    调试时在在variables敲@err,hr
    可以知道每条函数执行后的信息
      

  5.   

    vc自带有一个工具专门用来看错误代码的,叫error lookup在工具栏
      

  6.   

    我想在程序中显示出错误信息来,我用
    str.Format("Error number:%x",GetLastError());
    AfxMessageBox(str);
    显示的是:Error number:8009200c,
    用error lookup查到对应的消息:找不到可用于解密的证书和私钥。
    但是我用xubin_sh(徐彬)给的那段代码去世的时候,
    却弹出一个Error窗口,显示“操作成功完成”,是他的代码错了,还是别的》
      

  7.   

    GetLastError只能调用一次,每次指返回最后一次api的情况,如果你期间又调用过GetLastError,那第二次返回的是调用那次GetLastError的情况
      

  8.   

    在tools里面有一个error lookup工具,输入错误代码,就可以出现错误代码所对应的文本信息了
      

  9.   

    LPVOID lpMsgBuf;
    if (!FormatMessage( 
        FORMAT_MESSAGE_ALLOCATE_BUFFER | 
        FORMAT_MESSAGE_FROM_SYSTEM | 
        FORMAT_MESSAGE_IGNORE_INSERTS,
        NULL,
        xxxx,  <===== 直接把你的错误号填到这里来看看 ==========================
        MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), // Default language
        (LPTSTR) &lpMsgBuf,
        0,
        NULL ))
    {
       // Handle the error.
       return;
    }// Process any inserts in lpMsgBuf.
    // ...// Display the string.
    MessageBox( NULL, (LPCTSTR)lpMsgBuf, "Error", MB_OK | MB_ICONINFORMATION );// Free the buffer.
    LocalFree( lpMsgBuf );