我的代码如下:
int CLHFtp::ListServerFiles(CString condition, CComboBox *pBox)
{
int filecount = 0;
CString FtpPath = condition;
bool show = false;
if(pBox != NULL)
show = true;
if(show)
{
pBox->ResetContent();
}
if(m_pFtpConnection==NULL)
return filecount;
CFtpFileFind ftpfind(m_pFtpConnection);
BOOL bfind=ftpfind.FindFile(FtpPath);
while(bfind)
{
bfind=ftpfind.FindNextFile();
CString strpath=ftpfind.GetFileTitle();
if(ftpfind.IsDirectory() )
{
}
else
{
if(show)
pBox->AddString(strpath);
filecount++;
}
}
return filecount;
}奇怪的是假如有找到文件(数目和文件名都正确),在最后return filecount执行后,程序就死掉了。在某些机器上会,某些又不会。
请问哪位有碰到过,很头疼!
int CLHFtp::ListServerFiles(CString condition, CComboBox *pBox)
{
int filecount = 0;
CString FtpPath = condition;
bool show = false;
if(pBox != NULL)
show = true;
if(show)
{
pBox->ResetContent();
}
if(m_pFtpConnection==NULL)
return filecount;
CFtpFileFind ftpfind(m_pFtpConnection);
BOOL bfind=ftpfind.FindFile(FtpPath);
while(bfind)
{
bfind=ftpfind.FindNextFile();
CString strpath=ftpfind.GetFileTitle();
if(ftpfind.IsDirectory() )
{
}
else
{
if(show)
pBox->AddString(strpath);
filecount++;
}
}
return filecount;
}奇怪的是假如有找到文件(数目和文件名都正确),在最后return filecount执行后,程序就死掉了。在某些机器上会,某些又不会。
请问哪位有碰到过,很头疼!
------------------------------------------
什么意思??卡住了???
等待事件??
--是卡住了,程序UI弹不出来了。单步在return filecount执行后卡住会不会文件太多》。
还是要看程序具体死掉的原因
--文件没几个try catch一下,看看什么抛出了异常
--有试过,并没有什么异常,同样是执行return filecount后死掉有没有跟踪,或者debug日志,是不是因为什么事件触发没有搞????
等待事件??
--没有其他等待事件,这时的vc里的debug信息没有异常,而且在某些机器上执行是ok的感谢大家帮助!
在退出这个函数的时候,CFtpFileFind会执行到析构函数。看看是否是析构函数做某些清理工作的时候卡住。
在退出这个函数的时候,CFtpFileFind会执行到析构函数。看看是否是析构函数做某些清理工作的时候卡住。
--我又尝试了一下,加上ftpfind.Close()就好了。谢谢大家