输出信息到控制台

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;
}
Last modification:October 26, 2018
如果觉得我的文章对你有用,请随意赞赏