很多时候要使用GetLastError函数来获取函数调用的出错代码,但仅仅是代码并不够,我们还需要知道错误代码所代表的具体信息。在《Windows核心编程》中提到过一种办法,现整理代码如下:
- LPVOID lpMsgBuf;
- DWORD dw = GetLastError();
- FormatMessage(
- FORMAT_MESSAGE_ALLOCATE_BUFFER |
- FORMAT_MESSAGE_FROM_SYSTEM,
- NULL,
- dw,
- MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
- (LPTSTR) &lpMsgBuf,
- 0, NULL );
- MessageBox((LPCTSTR)lpMsgBuf, "系统错误", MB_OK|MB_ICONSTOP);
- LocalFree(lpMsgBuf);