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

子彈 の 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 閱讀(15311) 評(píng)論(4)  編輯 收藏 引用

Feedback

# 《Win32多線程程序設(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è)用戶登錄后才能發(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>
            亚洲综合电影一区二区三区| 欧美日韩亚洲免费| 亚洲欧美另类在线观看| 久久久99久久精品女同性| 亚洲国产日韩欧美在线99 | 亚洲天堂网在线观看| 久久久久久久久蜜桃| 亚洲美女视频网| 欧美黄色免费| 亚洲国产mv| 久久不见久久见免费视频1| 亚洲免费电影在线观看| 另类综合日韩欧美亚洲| 国精品一区二区三区| 亚洲图色在线| 亚洲精品国久久99热| 欧美国产在线观看| 最新中文字幕一区二区三区| 亚洲成人中文| 欧美精品一区二区三区在线播放| 欧美另类综合| 亚洲四色影视在线观看| 亚洲精品在线看| 欧美性感一类影片在线播放| 亚洲中午字幕| 欧美一区二区视频在线观看2020| 国产日韩在线不卡| 久久久久久香蕉网| 久久久久成人网| 日韩一级免费观看| 中文精品一区二区三区| 国产日韩欧美另类| 美乳少妇欧美精品| 欧美a级一区二区| 日韩一级免费| 欧美精品久久天天躁| 亚洲午夜久久久| 国际精品欧美精品| 欧美电影免费观看高清| 久久免费国产精品| 一本色道久久综合亚洲二区三区| 欧美风情在线观看| 欧美激情在线狂野欧美精品| 久久久久久电影| 欧美激情中文不卡| 欧美成人精品在线视频| 一区二区三区日韩在线观看| 亚洲特级片在线| 亚洲欧美日韩国产中文在线| 亚洲日本中文字幕免费在线不卡| 可以看av的网站久久看| 美女视频网站黄色亚洲| 99人久久精品视频最新地址| 亚洲欧美在线观看| 国产免费成人| 在线午夜精品| 亚洲高清激情| 国产精品播放| 久久综合色婷婷| 欧美综合国产精品久久丁香| 欧美人成在线| 亚洲日本va午夜在线影院| 校园春色国产精品| 亚洲国产欧美日韩另类综合| 亚洲激情影院| 性欧美xxxx视频在线观看| 久久久精品久久久久| 欧美成人精品在线播放| 欧美承认网站| a4yy欧美一区二区三区| 亚洲天天影视| 久久久久天天天天| 激情欧美国产欧美| 亚洲人成欧美中文字幕| 亚洲国产一区二区a毛片| 欧美福利视频网站| 久久国产精品黑丝| 噜噜噜91成人网| 国产精品久久久久影院色老大| 亚洲国产成人久久| 一本色道久久综合| 欧美激情第1页| 亚洲人成网站999久久久综合| 亚洲午夜国产成人av电影男同| 国产精品久久精品日日| 99re在线精品| 欧美 日韩 国产 一区| 国产一区二区三区精品欧美日韩一区二区三区 | 亚洲私人影吧| 99国产精品视频免费观看| 欧美日韩国产精品一区| 欧美一级视频精品观看| 国产精品日韩| 日韩一级成人av| 蜜乳av另类精品一区二区| 亚洲一级高清| 久久成人18免费观看| 亚洲第一黄色网| 欧美www视频| 国产精品外国| 欧美va亚洲va日韩∨a综合色| 老司机一区二区| 亚洲欧洲av一区二区| 亚洲人成在线观看| 黑人巨大精品欧美一区二区| 午夜亚洲福利| 在线亚洲欧美专区二区| 国产亚洲欧美一级| 欧美mv日韩mv国产网站app| 你懂的视频欧美| 午夜欧美精品久久久久久久| 黑人巨大精品欧美一区二区 | 久久精品成人一区二区三区蜜臀 | 国内一区二区在线视频观看| 午夜精品免费在线| 一区二区三区|亚洲午夜| 欧美成人免费在线观看| 一区二区av| 久久成人羞羞网站| 最近中文字幕mv在线一区二区三区四区 | 国产一区在线免费观看| 午夜久久久久久久久久一区二区| 亚洲香蕉视频| 亚洲美女一区| 欧美激情一区二区三级高清视频| 在线视频精品一区| 久久久久**毛片大全| 亚洲在线观看视频| 亚洲电影免费观看高清完整版在线| 免费一级欧美片在线观看| 在线播放不卡| 亚洲欧美日韩成人高清在线一区| 先锋影音网一区二区| 国产精品99久久久久久人| 亚洲一区免费在线观看| 麻豆精品视频在线| 亚洲大胆人体视频| 一区二区福利| 亚洲免费精彩视频| 欧美电影美腿模特1979在线看 | 欧美午夜剧场| 国产亚洲激情在线| 欧美一级视频| 亚洲国产一区二区三区在线播 | 一本色道久久综合精品竹菊| 欧美在线免费视屏| 欧美日韩四区| 亚洲综合色网站| 欧美日韩不卡| 欧美大香线蕉线伊人久久国产精品| 国模精品一区二区三区| 久久激情五月婷婷| 另类综合日韩欧美亚洲| 韩国一区二区三区在线观看| 久久精品成人一区二区三区蜜臀| 国产精品国产精品| 久久精品国产欧美激情| 久久精品一区中文字幕| 午夜一区不卡| 亚洲一区中文| 久久免费视频在线| 亚洲国产一区二区三区青草影视| 欧美电影免费| 亚洲一区二区三区精品在线| 午夜天堂精品久久久久| 好吊成人免视频| 欧美成人一区二区| 亚洲午夜视频| 欧美国产日产韩国视频| 亚洲天堂av在线免费| 国产日本欧美一区二区三区在线| 久久精品国产99精品国产亚洲性色| 欧美成人网在线| 亚洲自拍偷拍色片视频| 韩国自拍一区| 欧美激情精品久久久久久变态| 一区二区三区视频在线看| 久久蜜桃香蕉精品一区二区三区| 亚洲欧洲日夜超级视频| 国产精品久久久久久久久免费桃花 | 亚洲制服av| 亚洲国产一区二区视频| 国产酒店精品激情| 狼狼综合久久久久综合网| 一本色道久久综合亚洲精品不| 久久久女女女女999久久| 国产精品99久久久久久白浆小说| 国内精品美女av在线播放| 欧美日韩美女在线| 麻豆精品在线视频| 亚洲一区二区免费在线| 91久久精品久久国产性色也91| 欧美在线视频日韩| 亚洲性感美女99在线| 亚洲精品你懂的| 亚洲国产91精品在线观看| 国产综合色产| 国产视频久久| 国产精品日韩欧美| 欧美日韩另类视频|