CopyFile(_T("080403.zip"),str+_T("\\version\\patch\\0804031105.zip"),false);
DWORD dwError = GetLastError();
FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM,NULL,dwError,0,szError,sizeof(szError),NULL);
MessageBox(szError);如何讲上面的错误处理写成函数调用,我要复制好几个文件,每次都这样太麻烦了。现请问高手,上面的错误处理如何写成函数调用?初学,不知道怎么写。

解决方案 »

  1.   

    随意啊,GetLastError()跟后面的两句放在一起,写在一个函数里。
      

  2.   

    2楼说得很明白了。void ShowErrorMessage()
    {
    TCHAR szError[256] = {0};
    DWORD dwError = GetLastError();
    FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, dwError, 0, szError, _countof(szError), NULL);
    MessageBox(szError);
    }
      

  3.   


    void PopErrorMessage(DWORD dwErrorCode)
    {
    LPVOID lpMsgBuf = NULL;
    if( ::FormatMessage( 
    FORMAT_MESSAGE_ALLOCATE_BUFFER | 
    FORMAT_MESSAGE_FROM_SYSTEM | 
    FORMAT_MESSAGE_IGNORE_INSERTS,
    NULL,
    dwErrorCode,
    MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT), 
    (LPTSTR) &lpMsgBuf,
    0,
    NULL 
    ) >0 )
    {
    ::MessageBoxW( NULL, (LPCTSTR)lpMsgBuf, L"Error", MB_OK | MB_ICONINFORMATION );
    ::LocalFree( lpMsgBuf );
    }
    }