输出信息到控制台
void show_msg() {
TCHAR szBuf[128];//自定义的输出缓冲区
LPVOID lpMsgBuf;//标准的错误信息缓冲区
DWORD dw = GetLastError();//获取错误id
FormatMessage(
FORMAT_MESSAGE_ALLOCATE_BUFFER | FORMAT_MESSAGE_FROM_SYSTEM,//定义错误的标准
NULL,
dw,//设定错误id
MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),//设定语言
(LPTSTR)&lpMsgBuf,//错误信息保存到哪里
0,
NULL);
//按照我们自己的格式重新封装错误信息
wsprintf(szBuf,
__TEXT("%s 出错信息 (出错码=%d): %s"),
__TEXT("这里是消息的头"),
dw, lpMsgBuf);
//由于我们自己封装了错误信息,所以可以提前释放 标准的信息缓冲区
LocalFree(lpMsgBuf);
//输出提示
OutputDebugString(szBuf);
}
MessageBox
int DisplayResourceNAMessageBox()
{
int msgboxID = MessageBox(
//NULL,//父窗口id
reinterpret_cast<HWND>(0x000A04BA), (LPCWSTR)L"正文",//我们这里给一个错误的父窗口id
(LPCWSTR)L"标题",
//窗口正文坐标的图标 | 按钮的类型 | 默认按钮
MB_ICONWARNING | MB_CANCELTRYCONTINUE | MB_DEFBUTTON2
);
/*
处理错误
建议立即处理
*/
switch (msgboxID)
{
case IDCANCEL:
// TODO: add code
break;
case IDTRYAGAIN:
// TODO: add code
break;
case IDCONTINUE:
// TODO: add code
break;
default:
show_msg();
}
return msgboxID;
}