【问题标题】:How do I get specific error information from GetFile()?如何从 GetFile() 获取特定的错误信息?
【发布时间】:2023-03-24 21:12:01
【问题描述】:
void GetFtpFile(LPCTSTR pszServerName, LPCTSTR pszRemoteFile, LPCTSTR pszLocalFile)
{
   CInternetSession session(_T("My FTP Session"));
   CFtpConnection* pConn = NULL;

   pConn = session.GetFtpConnection(pszServerName);
   //get the file
   if (!pConn->GetFile(pszRemoteFile, pszLocalFile))
   {
      //display an error
   }
   delete pConn;
   session.Close();
}

如何从 GetFile() 获取特定的错误信息?

谢谢。

【问题讨论】:

    标签: c++ c winapi file ftp


    【解决方案1】:

    根据MSDN

    返回值

    如果成功则非零;

    否则为0。如果调用失败,则 Win32 函数 GetLastError 可能是 打电话来确定原因 错误。

    GetLastError() 返回错误代码,但您可以调用 FormatMessage() 从错误代码中获取人类可读的字符串。下面是一个实用函数,可以为您做到这一点:

    std::string formatwinerr(unsigned long errCode)
    {
        LPVOID lpMsgBuf;
    
        FormatMessage(
            FORMAT_MESSAGE_ALLOCATE_BUFFER | 
            FORMAT_MESSAGE_FROM_SYSTEM ,
            0,
            errCode,
            MAKELANGID(LANG_NEUTRAL, SUBLANG_DEFAULT),
            (LPTSTR) &lpMsgBuf,
            0, NULL );
    
        std::string ret((const char*)lpMsgBuf);
    
        LocalFree(lpMsgBuf);
    
        return ret;
    }
    

    【讨论】:

    【解决方案2】:

    GetLastError() 呢?

    【讨论】:

      【解决方案3】:

      根据MSDN 是GetLastError()

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2014-12-16
        • 1970-01-01
        • 1970-01-01
        • 2020-08-04
        • 2020-12-03
        • 2016-02-08
        • 2015-04-10
        相关资源
        最近更新 更多