我的代码如下:
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执行后,程序就死掉了。在某些机器上会,某些又不会。
请问哪位有碰到过,很头疼!

解决方案 »

  1.   

    在最后return filecount执行后,程序就死掉了
    ------------------------------------------
    什么意思??卡住了???
      

  2.   

    try catch一下,看看什么抛出了异常
      

  3.   

    有没有跟踪,或者debug日志,是不是因为什么事件触发没有搞????
    等待事件??
      

  4.   

    什么意思??卡住了???
    --是卡住了,程序UI弹不出来了。单步在return filecount执行后卡住会不会文件太多》。
    还是要看程序具体死掉的原因
    --文件没几个try catch一下,看看什么抛出了异常
    --有试过,并没有什么异常,同样是执行return filecount后死掉有没有跟踪,或者debug日志,是不是因为什么事件触发没有搞????
    等待事件??
    --没有其他等待事件,这时的vc里的debug信息没有异常,而且在某些机器上执行是ok的感谢大家帮助!
      

  5.   

    会不会和网速有关。
    在退出这个函数的时候,CFtpFileFind会执行到析构函数。看看是否是析构函数做某些清理工作的时候卡住。
      

  6.   

    会不会和网速有关。
    在退出这个函数的时候,CFtpFileFind会执行到析构函数。看看是否是析构函数做某些清理工作的时候卡住。
    --我又尝试了一下,加上ftpfind.Close()就好了。谢谢大家