前段时间,调试一段骨灰级代码,在VC6.0下,使用CFtpFileFind,在FTP服务器上,查找指定文件,发现实例化的CFtpFileFind对象,只能执行一次,再次执行则报出访问系统内存的错误。百思不得其解,后来F11调试至CFtpFileFind的内部函数,发现是其报错。然后找到了解决方法:
pFtpConnection = m_pFtpConnection;
CFtpFileFind f(pFtpConnection);
while(bFind)
{
}
f.Close();//调用这个
在CFileFind::ColseContext()
{
if(m_hContext != NULL && m_hContext INVALID_HANDLE_VALUE)
{
InternetColseHandle(m_hContext); //添加
m_hContext;
}
}
英文原文,在codeproject上有,http://www.codeproject.com/KB/bugs/ftpfilefind.aspx