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

















