首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

请高手帮忙看看一个文件处理的程序,该如何处理

2012-02-04 
请高手帮忙看看一个文件处理的程序编译时出现如下错误提示:errorC2664:_chdir:cannotconvertparameter1fro

请高手帮忙看看一个文件处理的程序
编译时出现如下错误提示:
error   C2664:   '_chdir '   :   cannot   convert   parameter   1   from   'bool '   to   'const   char   * 'Conversion   from   integral   type   to   pointer   type   requires   reinterpret_cast,   C-style   cast   or   function-style   cast

错误指向代码行:if(_chdir((const   char   *)(FileName.Left(i))!=0))

程序的功能为成批处理文件。

程序代码如下:
int   ProcessFiles(void   (*   ProcessAFile)   (CString   fileName))
{
CString   FileName;
if   (!GetData( "输入文件名(可含通配符): ",FileName))   return   0;
int   i=FileName.ReverseFind( '\\ ');
if   (i> 0)  
{
if(_chdir((const   char   *)(FileName.Left(i))!=0))
{
AfxMessageBox( "路径名错误! ");
return   0;
}
FileName=FileName.Mid(i+1);
}
_finddata_t   info;
long   handle=_findfirst(FileName.GetBuffer(FileName.GetLength()),&info);
if   (errno==ENOENT)
{
AfxMessageBox( "没有找到匹配文件! ");
        return   0;
}
else   if   (errno==EINVAL)
{
AfxMessageBox( "非法文件名! ");
return   0;
}
int   fileCount=0;
do   {
ProcessAFile(info.name);
fileCount++;
}     while   (_findnext(handle,   &info)==0);
errno=0;
AfxMessageBox( "全部文件处理完毕! ");
return   fileCount;
}

BOOL   GetData(const   char*   Prompt,   CString&   Data)  
{
//输入一个字符串
CGetDataDlg   dlg(Prompt);//调用对话框类的构造函数
if   (dlg.DoModal()!=IDOK)   return   FALSE;//如果用户取消了对话框
Data=dlg.DataString;//给形参赋值
return   TRUE;    
}

/////////////////////////////////////////////////////////////////////////////
//   CGetDataDlg2

BOOL   GetData(const   char*   Prompt,   int&   Data)  
{
//输入一个整数
CGetDataDlg   dlg(Prompt);
if   (dlg.DoModal()!=IDOK)   return   FALSE;
dlg.DataString.TrimLeft();//压缩左边空格
dlg.DataString.TrimRight();//压缩右边空格
Data=atoi((const   char   *)(dlg.DataString));//转换为整数
return   TRUE;    
}

/////////////////////////////////////////////////////////////////////////////
//   CGetDataDlg3

BOOL   GetData(const   char   *Prompt,   double&   Data)  
{//输入一个实数
CGetDataDlg   dlg(Prompt);
if   (dlg.DoModal()!=IDOK)   return   FALSE;
dlg.DataString.TrimLeft();
dlg.DataString.TrimRight();
Data=atof((const   char   *)(dlg.DataString));
return   TRUE;    
}


请问:问题出在哪里?如何改正?万分感谢!


[解决办法]
( (const char *) (FileName.Left(i))!=0) )


你的括号离的太近了,拉远点就好了 : )

热点排行