ftp失败后ftp_connect还有是一个有效指吗?
试试这个
 
CInternetSession  *inet_session = NULL;
CFtpConnection     *ftp_connect = NULL;
inet_session = new CInternetSession();
if (!inet_session)
    return -1;
try
{
    ftp_connect=inet_session->GetFtpConnection(m_ServerIp,
          m_UserId,m_Password,ftp_port,TRUE);    
}
catch(...)
{
   if (ftp_connect)
      delete ftp_connect;
   inet_session->Close();
   delete inet_session;
   return -1;
}
... ...
 

解决方案 »

  1.   

    To sun2000:
       谢谢,你只是检查了ftp_connect是否是一个有效指,但主要问题内存泄漏没有解决。
      

  2.   

    CFtpConnection* CInternetSession::GetFtpConnection(LPCTSTR pstrServer,
    LPCTSTR pstrUserName /* = NULL */, LPCTSTR pstrPassword /* = NULL */,
    INTERNET_PORT nPort /* = INTERNET_INVALID_PORT_NUMBER */,
    BOOL bPassive /* = FALSE */)
    {
    ASSERT(AfxIsValidString(pstrServer)); CFtpConnection* pReturn = new CFtpConnection(this,
    pstrServer, pstrUserName, pstrPassword, m_dwContext,
    nPort, bPassive);
    return pReturn;
    }//GetFtpConnection中new的CFtpConnection我如何释放?
      

  3.   

    如果ftp_connect有效,要先把他close掉再delete
    否则还是会有告警