青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

子彈 の VISIONS

NEVER back down ~~

C++博客 首頁(yè) 新隨筆 聯(lián)系 聚合 管理
  112 Posts :: 34 Stories :: 99 Comments :: 0 Trackbacks

??????? 通常,在寫(xiě)WINDOWS程序的時(shí)候我們會(huì)用 GetLastError()來(lái)獲得錯(cuò)誤代號(hào),進(jìn)而想要知道具體出錯(cuò)原因(文本描述),我們可以用 FormatMessage 函數(shù)來(lái)得到。
  下面示例一段代碼。

?1
?2 /*
?3 利用FormatMessage函數(shù)得到錯(cuò)誤代碼的文本顯示。而錯(cuò)誤代號(hào)則可由GetLastError()獲得。(_WINDOWS)
?4 */

?5
?6 ????DWORD nErrorNo =?GetLastError ( ); // 得到錯(cuò)誤代碼
?7 ????LPSTR?lpBuffer;????
?8 ????FormatMessage (?FORMAT_MESSAGE_ALLOCATE_BUFFER? |
?9 ???????? FORMAT_MESSAGE_IGNORE_INSERTS? |
10 ????????FORMAT_MESSAGE_FROM_SYSTEM,
11 ????????NULL,
12 ????????nErrorNo, // 此乃錯(cuò)誤代碼,通常在程序中可由 GetLastError()得之
13 ????????LANG_NEUTRAL,
14 ????????(LPTSTR) & lpBuffer,
15 ???????? 0 ,
16 ????????NULL?);
17 ????CString strErrorCause? = ?lpBuffer? ? ?_T(lpBuffer)?:?_T( " Sorry,?cannot?find?this?error?info. " );
18 ????UpdateData (FALSE);
19
20 ???? // ?Free?the?buffer.
21 ????LocalFree (lpBuffer);

我這里編譯了一個(gè)簡(jiǎn)單的可執(zhí)行程序供給有需要的朋友 [ 下載?]。
MD5: 50b4fd62cf3082a9a3131e0ca3a00a86? ErrorLookup.rar
截圖:
posted on 2006-05-24 16:18 子彈のVISIONS 閱讀(15301) 評(píng)論(4)  編輯 收藏 引用

Feedback

# 《Win32多線(xiàn)程程序設(shè)計(jì)》上的一個(gè)應(yīng)用 2006-05-31 12:50 子彈


/*
* MtVerify.h
*
* Error handling for applications in
* "Multitheading Applications in Win32"
*
* The function PrintError() is marked as __inline so that it can be
* included from one or more C or C++ files without multiple definition
* errors. For the examples in this book, this works fine.
* To use the PrintError() in an application, it should be taken out,
* placed in its own source file, and the "__inline" declaration removed
* so the function will be globally available.
*/

#pragma comment( lib, "USER32" )

#include
#define MTASSERT(a) _ASSERTE(a)


#define MTVERIFY(a) if (!(a)) PrintError(#a,__FILE__, __LINE__, GetLastError())

__inline void PrintError(LPSTR linedesc, LPSTR filename, int lineno, DWORD errnum)
{
LPSTR lpBuffer;
char errbuf[256];
#ifdef _WINDOWS
char modulename[MAX_PATH];
#else // _WINDOWS
DWORD numread;
#endif // _WINDOWS

FormatMessage( FORMAT_MESSAGE_ALLOCATE_BUFFER
| FORMAT_MESSAGE_FROM_SYSTEM,
NULL,
errnum,
LANG_NEUTRAL,
(LPTSTR)&lpBuffer,
0,
NULL );

wsprintf(errbuf, "\nThe following call failed at line %d in %s:\n\n"
" %s\n\nReason: %s\n", lineno, filename, linedesc, lpBuffer);
#ifndef _WINDOWS
WriteFile(GetStdHandle(STD_ERROR_HANDLE), errbuf, strlen(errbuf), &numread, FALSE );
Sleep(3000);
#else
GetModuleFileName(NULL, modulename, MAX_PATH);
MessageBox(NULL, errbuf, modulename, MB_ICONWARNING|MB_OK|MB_TASKMODAL|MB_SETFOREGROUND);
#endif
exit(EXIT_FAILURE);
}

說(shuō)明:其中輸出到stderr和MessageBox部分可以把錯(cuò)誤信息Log到文件或者其他存儲(chǔ)中,以備分析錯(cuò)誤記錄。

MTVERIFY宏的使用前提是:產(chǎn)生的錯(cuò)誤可以由GetLastError()捕捉。
  回復(fù)  更多評(píng)論
  

# re: GetLastError與FormatMessage聯(lián)用得到出錯(cuò)原因 2008-02-28 18:15 匿名
3Q  回復(fù)  更多評(píng)論
  

# re: GetLastError與FormatMessage聯(lián)用得到出錯(cuò)原因 2009-05-02 14:34 calm
lpBuffer:是一個(gè)指針
但在使用時(shí) 用( LPTSTR )&buffer,不就是變成指針的地址,也就是指針的指針了 這是什么原因?   回復(fù)  更多評(píng)論
  

# re: GetLastError與FormatMessage聯(lián)用得到出錯(cuò)原因 2009-07-04 11:26 路過(guò)
@calm
因?yàn)檫@個(gè)API是傳值,所以需要把指針的地址傳過(guò)去,這樣這個(gè)指針才能被API內(nèi)部修改,指向他申請(qǐng)的內(nèi)存空間。
  回復(fù)  更多評(píng)論
  


只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            艳妇臀荡乳欲伦亚洲一区| 亚洲激情在线观看视频免费| 欧美一区二区网站| 欧美黑人多人双交| 久久夜色精品国产欧美乱| 国产日韩精品一区二区三区| 亚洲国产精品123| 亚洲小说欧美另类婷婷| 久久一区二区三区国产精品| 日韩视频一区二区三区| 亚洲一级影院| 亚洲国产精品成人| 欧美乱人伦中文字幕在线| 亚洲精品视频在线| 欧美电影电视剧在线观看| 日韩午夜电影av| 欧美理论片在线观看| 欧美一级成年大片在线观看| 免费亚洲网站| 久久精品卡一| 国产日韩在线不卡| 亚洲欧美日韩精品久久亚洲区 | 欧美人与禽性xxxxx杂性| 欧美国产日韩一区二区| 欧美在线亚洲在线| 亚洲深夜av| 中文精品视频一区二区在线观看| 国产真实久久| 欧美日韩高清区| av成人激情| 午夜激情一区| 欧美成人视屏| 久久精品国产91精品亚洲| 欧美大片在线看| 欧美日韩免费看| 欧美日韩免费在线观看| 欧美日韩午夜| 国产精品久久久久久久久免费樱桃 | 亚洲香蕉视频| av成人免费观看| 亚洲第一页中文字幕| 久久久久亚洲综合| 久久精品国产清自在天天线| 玖玖精品视频| 欧美一区二区在线观看| 91久久国产综合久久91精品网站| 亚洲天堂免费观看| 久久九九久精品国产免费直播| 久久精品久久99精品久久| 免费久久99精品国产| 国产欧美三级| 亚洲第一在线视频| 亚洲一级黄色av| 久久国产一区二区| 亚洲精品久久视频| 亚洲韩国精品一区| 欧美伊人精品成人久久综合97| 免费亚洲一区二区| 136国产福利精品导航网址应用| 中文精品视频| 亚洲一区日韩在线| 欧美日韩精品在线视频| 亚洲国产专区| 美女主播视频一区| 午夜免费久久久久| 国产伦精品一区二区三区免费迷| 日韩亚洲在线观看| 久久久夜夜夜| 久久成年人视频| 国产一区在线观看视频| 亚洲一区国产一区| 国产精品一区二区三区久久| 亚洲午夜女主播在线直播| 久久伊人亚洲| 久久精品国语| 午夜日韩av| 午夜精品福利一区二区三区av | **网站欧美大片在线观看| 日韩午夜激情电影| av成人福利| 国产精品免费福利| 欧美一区二区三区精品| 欧美在线视频一区二区| 国产欧美日韩视频一区二区三区| 亚洲欧美日韩在线综合| 欧美va日韩va| 中文国产成人精品| 久久岛国电影| 夜夜夜精品看看| 99人久久精品视频最新地址| 国产视频不卡| 亚洲视频在线观看三级| 亚洲黄色一区| 亚洲欧洲精品一区二区三区波多野1战4 | 欧美在线一区二区三区| 国产一区二区三区在线播放免费观看 | 国产精品99久久久久久有的能看| 在线观看91精品国产入口| 亚洲激情第一页| 一片黄亚洲嫩模| 久久久精品国产免大香伊| 性娇小13――14欧美| 欧美一站二站| 欧美日本国产视频| 日韩一区二区电影网| 亚洲国产成人不卡| 欧美裸体一区二区三区| 一区二区三区不卡视频在线观看 | 免费不卡在线观看av| 久久精品免费| 亚洲人成高清| 免费看亚洲片| 亚洲国产精品传媒在线观看| 亚洲美女黄网| 欧美人妖在线观看| 久久精品一本| 久久综合伊人77777尤物| 亚洲第一页在线| 免费日韩一区二区| 亚洲精品美女免费| 欧美黄色免费网站| 亚洲深夜av| 欧美区高清在线| 久久久激情视频| 亚洲精品国久久99热| 亚洲欧美综合一区| 一本不卡影院| 一区二区三区在线不卡| 久久免费黄色| 久久黄色网页| 亚洲欧美卡通另类91av| 久久福利毛片| 中文亚洲欧美| 亚洲免费一在线| 亚洲国产精品一区二区www| 国产日韩欧美综合精品| 欧美日韩妖精视频| 国产精品美女主播在线观看纯欲| 久久先锋影音av| 老司机午夜精品| 亚洲国产精品久久精品怡红院| 久久久久久久久蜜桃| 亚洲欧美精品一区| 久久国产夜色精品鲁鲁99| 欧美一区1区三区3区公司| 亚洲福利专区| 亚洲欧美另类久久久精品2019| 香蕉成人啪国产精品视频综合网| 亚洲性人人天天夜夜摸| 亚洲国产99| 亚洲香蕉成视频在线观看| 午夜在线a亚洲v天堂网2018| 免费不卡中文字幕视频| 嫩草成人www欧美| 一区二区三区四区五区精品视频 | 欧美精品一线| 欧美日韩精品在线视频| 欧美色123| 亚洲欧洲视频在线| 亚洲欧美激情视频| 亚洲国产精品成人精品| 欧美电影在线免费观看网站| 久久亚洲影院| 亚洲一区二区av电影| 欧美片网站免费| 亚洲高清电影| 欧美mv日韩mv国产网站app| 亚洲高清久久久| 香蕉久久夜色| 欧美精品一区二区三区四区| 亚洲激情国产| 久久这里有精品15一区二区三区| 亚洲精品美女久久7777777| 久久国产精品99国产精| 欧美巨乳波霸| 亚洲色图制服丝袜| 亚洲欧洲在线免费| 久久精品国产99精品国产亚洲性色| 欧美精品首页| 久久久久久亚洲精品中文字幕| 欧美不卡激情三级在线观看| 亚洲精品一二三区| 欧美日韩在线精品| 午夜精品视频在线观看| 在线观看成人一级片| 欧美在线看片| 亚洲精品美女久久久久| 亚洲伊人久久综合| 在线成人激情黄色| 国产精品网站在线| 欧美激情一区二区三区高清视频 | 麻豆成人精品| 一区二区三区四区五区在线| 欧美不卡激情三级在线观看| 午夜精品久久久久久久久| 亚洲欧洲精品一区二区三区不卡| 国产午夜一区二区三区| 国产精品扒开腿做爽爽爽软件| 欧美freesex8一10精品| 性色一区二区|