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

子彈 の VISIONS

NEVER back down ~~

C++博客 首頁 新隨筆 聯系 聚合 管理
  112 Posts :: 34 Stories :: 99 Comments :: 0 Trackbacks

??????? 通常,在寫WINDOWS程序的時候我們會用 GetLastError()來獲得錯誤代號,進而想要知道具體出錯原因(文本描述),我們可以用 FormatMessage 函數來得到。
  下面示例一段代碼。

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

?5
?6 ????DWORD nErrorNo =?GetLastError ( ); // 得到錯誤代碼
?7 ????LPSTR?lpBuffer;????
?8 ????FormatMessage (?FORMAT_MESSAGE_ALLOCATE_BUFFER? |
?9 ???????? FORMAT_MESSAGE_IGNORE_INSERTS? |
10 ????????FORMAT_MESSAGE_FROM_SYSTEM,
11 ????????NULL,
12 ????????nErrorNo, // 此乃錯誤代碼,通常在程序中可由 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);

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

Feedback

# 《Win32多線程程序設計》上的一個應用 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);
}

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

MTVERIFY宏的使用前提是:產生的錯誤可以由GetLastError()捕捉。
  回復  更多評論
  

# re: GetLastError與FormatMessage聯用得到出錯原因 2008-02-28 18:15 匿名
3Q  回復  更多評論
  

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

# re: GetLastError與FormatMessage聯用得到出錯原因 2009-07-04 11:26 路過
@calm
因為這個API是傳值,所以需要把指針的地址傳過去,這樣這個指針才能被API內部修改,指向他申請的內存空間。
  回復  更多評論
  

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            久久露脸国产精品| 久久综合伊人77777| 日韩一级免费| 亚洲高清不卡一区| 午夜一区二区三区不卡视频| 伊人久久婷婷| 国产精品羞羞答答| 中日韩高清电影网| 久久久综合网| 久久久久久久久伊人| 午夜免费电影一区在线观看| 亚洲精品美女久久7777777| 国产综合久久| 怡红院精品视频在线观看极品| 国产农村妇女毛片精品久久麻豆| 欧美日韩在线精品| 欧美视频第二页| 欧美日韩在线观看视频| 国产精品红桃| 国产精品日韩欧美综合| 国产乱码精品1区2区3区| 久久人人超碰| 久久久女女女女999久久| 久久久av毛片精品| 久久久91精品国产| 亚洲国产高清一区| 亚洲精品资源| 午夜综合激情| 欧美成人免费在线视频| 欧美特黄a级高清免费大片a级| 国产精品一区在线播放| 亚洲福利专区| 欧美一区二区视频在线观看2020| 久久久久久午夜| 日韩一区二区精品葵司在线| 午夜精品久久久久久99热| 看片网站欧美日韩| 国产一区二区三区日韩| 一区二区三区四区国产| 欧美阿v一级看视频| 亚洲欧美视频一区| 欧美日韩亚洲系列| 日韩午夜在线观看视频| 亚洲一区二区毛片| 亚洲人人精品| 欧美电影在线| 91久久综合| 亚洲高清视频在线| 欧美成人一区在线| 亚洲国产一区在线| 欧美一站二站| 性一交一乱一区二区洋洋av| 国产精品毛片va一区二区三区| 日韩网站在线| 亚洲精品在线免费| 亚洲精品偷拍| 欧美mv日韩mv国产网站app| 伊人蜜桃色噜噜激情综合| 欧美成人久久| 欧美日韩免费观看一区=区三区| 99综合视频| 99国产麻豆精品| 国产精品稀缺呦系列在线| 久久久久五月天| 蜜桃久久av| 久久超碰97中文字幕| 老牛影视一区二区三区| 一本一本久久a久久精品综合妖精 一本一本久久a久久精品综合麻豆 | 欧美丰满高潮xxxx喷水动漫| 欧美在线视频全部完| 女主播福利一区| 欧美顶级大胆免费视频| 国产在线拍偷自揄拍精品| 亚洲网在线观看| 欧美在线视频导航| 黄色亚洲大片免费在线观看| 午夜欧美不卡精品aaaaa| 国产精品久久久一区二区| 亚洲精品免费在线播放| 日韩一区二区精品视频| 欧美日韩亚洲激情| 亚洲系列中文字幕| 久久久久久久久一区二区| 亚洲高清三级视频| 欧美激情精品久久久久久黑人| 亚洲国产日韩在线一区模特| 欧美影片第一页| 老司机一区二区三区| 亚洲福利一区| 国产精品一区二区久久精品| 欧美一区午夜精品| 欧美国产国产综合| 亚洲字幕一区二区| 伊人久久av导航| 国产精品v欧美精品v日韩| 久久国产精品久久国产精品| 91久久综合| 久久夜色精品| 欧美亚洲一区三区| 一本久道综合久久精品| 在线免费精品视频| 国产精品综合不卡av| 欧美国产专区| 蜜臀av国产精品久久久久| 午夜国产欧美理论在线播放| 亚洲国产你懂的| 蜜臀久久久99精品久久久久久| 亚洲综合另类| 香蕉久久精品日日躁夜夜躁| 91久久精品国产91久久| 亚洲精品裸体| 亚洲精选在线| 亚洲精品少妇| 一区二区三区四区国产精品| 亚洲黄色一区| 亚洲国产女人aaa毛片在线| 狠狠久久五月精品中文字幕| 国产日韩欧美视频| 国产亚洲视频在线| 136国产福利精品导航| 亚洲日本va在线观看| 亚洲人成毛片在线播放女女| 亚洲精品日韩综合观看成人91| 欧美视频免费看| 欧美激情第五页| 国产精品久久网站| 在线一区二区三区四区| 亚洲手机成人高清视频| 午夜精品久久久久| 乱中年女人伦av一区二区| 欧美日韩成人免费| 国产一区二区中文| aa国产精品| 久久一区二区三区国产精品 | 日韩网站免费观看| 久久精品国产77777蜜臀| 六月丁香综合| 亚洲综合精品四区| 欧美精品一二三| 国产麻豆午夜三级精品| 亚洲精品国精品久久99热| 亚洲欧美一区二区激情| 亚洲欧洲美洲综合色网| 久久精品国产成人| 亚洲黄色在线视频| 久久嫩草精品久久久精品| 国产精品区一区二区三区| 亚洲高清视频一区| 麻豆freexxxx性91精品| 亚洲制服少妇| 国产精品国产三级国产普通话三级| 国一区二区在线观看| 欧美在线日韩精品| 亚洲一区综合| 国产精品亚洲综合久久| 国产精品99久久久久久白浆小说| 免费日韩av| 欧美国产视频在线| 日韩亚洲欧美一区| 亚洲精品孕妇| 欧美日韩一区视频| 亚洲一区精彩视频| 亚洲午夜精品久久久久久浪潮 | 一本色道精品久久一区二区三区| 久久精品中文字幕免费mv| 亚洲欧美日韩国产一区二区三区 | 一区二区电影免费观看| 欧美午夜视频在线观看| 香蕉国产精品偷在线观看不卡| 午夜精品福利视频| 最新国产の精品合集bt伙计| 亚洲区免费影片| 国产精品美女久久久浪潮软件| 欧美在线一级视频| 你懂的视频一区二区| 亚洲一区欧美激情| 久久精品国产999大香线蕉| 亚洲区一区二区三区| 午夜精彩视频在线观看不卡| 最新日韩在线视频| 性高湖久久久久久久久| 亚洲国产中文字幕在线观看| 在线视频你懂得一区| 在线观看的日韩av| 欧美一区二区高清在线观看| 中文精品一区二区三区| 久久日韩精品| 久久久久久综合网天天| 欧美色中文字幕| 亚洲巨乳在线| 亚洲精品一区二区三区99| 久久精品国产视频| 久久九九免费视频| 国产欧美日韩视频一区二区| 亚洲美女视频网| 国产精品毛片一区二区三区| 亚洲激情精品| 日韩一级欧洲| 国产精品免费视频观看| 亚洲私人影吧|