现在的位置: 首页 > 综合 > 正文

VC++ GetLastError

2013年01月17日 ⁄ 综合 ⁄ 共 787字 ⁄ 字号 评论关闭

声明:本人一个菜鸟,网上搜罗了很多关于VC++编程的资料,可每本资料都是涵盖面太广,难以细致。英语又太烂,所以不得意只得摸索,恐又忘记所以记在此处,若有不对的地方,烦劳指出,不胜感激。

author:fym0121@163.com

license:GPL

IDE:Visual Studio 2008

扑捉并打印错误

    DWORD dwError = GetLastError();
    //FormatMessage内部分配内存,我们需要hlocal指向它
    HLOCAL hlocal = NULL;
    //系统默认语言,值貌似是0
    DWORD systemLocale = MAKELANGID(LANG_NEUTRAL,SUBLANG_NEUTRAL);
    BOOL fOk = FormatMessage(
        FORMAT_MESSAGE_FROM_SYSTEM |     //系统预定义错误
        FORMAT_MESSAGE_IGNORE_INSERTS |  //忽略%符,和printf中的%有点相似
        FORMAT_MESSAGE_ALLOCATE_BUFFER,  //内部分配内存
        NULL,            //在系统中查找错误代码
        dwError,        //错误代码
        systemLocale,   //用什么语言显示错误文本
        (PTSTR)&hlocal, //指向内部分配内存的指针
        0,              //分配内存大小,因是FormatMessage分配,我们不用管
        NULL            //可变参数列表
        );

    // Do something (PCTSTR)LocalLock(hlocal)

    LocalFree(hlocal);

抱歉!评论已关闭.