GetLastError演示

VS中添加监视$err,hr可以查询到错误码和对应的解释。也可以查看 winerror.h

方法1.

   

 1  ListBox.ResetContent();//清空CListBox
 2 
 3     LPVOID lpMsgBuf;
 4 
 5     for (int i=0;i<1000;i++)
 6 
 7     {
 8 
 9        DWORD dw =i; //在预测有错误的地方加上dw=GetLastError
10 
11        FormatMessage(
12 
13            FORMAT_MESSAGE_ALLOCATE_BUFFER |
14 
15            FORMAT_MESSAGE_FROM_SYSTEM,
16 
17            NULL,
18 
19            dw,
20 
21            MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
22 
23            (LPTSTR) &lpMsgBuf,
24 
25            0, NULL );//将中文的GetLastError对应的值返回到lpMsgBuf
26 
27        if (lpMsgBuf != NULL)
28 
29        {
30 
31            CString str;
32 
33            str.Format("%d:%s",i,(LPTSTR)lpMsgBuf);
34 
35            ListBox.AddString(str);
36 
37        }
38 
39    
40 
41        LocalFree(lpMsgBuf);
42 
43     }

 

 

方法2.

 1 ListBox.ResetContent();
 2 
 3     HLOCAL hLocal;
 4 
 5     hLocal=NULL;
 6 
 7     BOOL bFun;
 8 
 9     HMODULE hDll=LoadLibraryEx(TEXT("netmsg.dll"),NULL,DONT_RESOLVE_DLL_REFERENCES);
10 
11     for(int i=0;i<=15082;i++)
12 
13     {
14 
15        DWORD dwError=i;
16 
17         bFun=FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM|FORMAT_MESSAGE_ALLOCATE_BUFFER,NULL,dwError,MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED),(PTSTR)&hLocal,0,NULL);
18 
19        if(!bFun)
20 
21        {
22 
23  
24 
25            if(!hDll)
26 
27            {
28 
29                FormatMessage(FORMAT_MESSAGE_FROM_HMODULE|FORMAT_MESSAGE_FROM_SYSTEM,hDll,dwError,MAKELANGID(LANG_CHINESE,SUBLANG_CHINESE_SIMPLIFIED),(PTSTR)&hLocal,0,NULL);
30 
31               FreeLibrary(hDll);
32 
33            }
34 
35        }
36 
37  
38 
39        if(hLocal!=NULL)
40 
41        {
42 
43            CString str;
44 
45            str.Format("%d:%s",i,(PTSTR)LocalLock(hLocal));
46 
47            ListBox.AddString(str);
48 
49        }
50 
51  
52 
53     }
54 
55  

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值