通常,在写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);