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()获取特定的错误信息?
谢谢。
答案 0 :(得分:1)
GetLastError()怎么样?
答案 1 :(得分:1)
根据MSDN它的GetLastError()
答案 2 :(得分: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;
}