显示GetLastError()的错误描述字符串
void ShowLastError(){
LPVOID lpMsgBuf;
FormatMessage
(
FORMAT_MESSAGE_ALLOCATE_BUFFER | //返回一个已分配的内存
FORMAT_MESSAGE_FROM_SYSTEM |//系统消息
FORMAT_MESSAGE_IGNORE_INSERTS, //无视插入信息
NULL,
GetLastError(),
0, //默认语言
(LPTSTR)&lpMsgBuf, //错误信息指针
0,
NULL
);
MessageBox(NULL,(LPCTSTR)lpMsgBuf,NULL,MB_OK|MB_ICONINFORMATION);
LocalFree(lpMsgBuf);//释放内存
} 再补上个
int __cdecl MessageBoxPrintf (TCHAR * szCaption, TCHAR * szFormat, ...)
{
TCHAR szBuffer;
TCHAR *pArg1 = (TCHAR*)&szFormat + sizeof(szFormat);
_vsnprintf(szBuffer, sizeof(szBuffer)/sizeof(TCHAR), szFormat, pArg1);
return MessageBox (NULL, szBuffer, szCaption, MB_ICONINFORMATION);
}
然而MessageBox(NULL(第一个参数为NULL)会使GetLastError()返回ERROR_CLASS_ALREADY_EXISTS。
所以为了防止出错,正确的做法是把第一个参数填为你创建的窗口。
页:
[1]