int ProcessFiles(char *Ext, char * Name, void(* ProcessAFile)(CString fileName))
{
LPSTR   fp;
CFileDialog dlg(TRUE, Ext, Name, OFN_ALLOWMULTISELECT);
fp = (LPSTR) malloc(200 * _MAX_PATH );
dlg.m_ofn.lpstrFile=fp;

解决方案 »

  1.   

    memset(fp,200 * _MAX_PATH, '\0');
      

  2.   

    改为: CFileDialog dlg(TRUE, Ext, Name, OFN_ALLOWMULTISELECT);
    fp = (LPSTR) malloc(200 * _MAX_PATH );
    memset(fp,200 * _MAX_PATH, '\0');
    dlg.m_ofn.lpstrFile=fp;
    还是报错啊!
    在if(dlg.DoModal()!=IDOK)时报错!谢谢!
      

  3.   

    改为: memset(fp,'\0',200 * _MAX_PATH);后,不报错了!但是仍然无法选中多个文件!请指教!谢谢!
      

  4.   

    改为: CFileDialog dlg(TRUE, Ext, Name, OFN_ALLOWMULTISELECT);
    fp = (LPSTR) malloc(200 * _MAX_PATH );
    memset(fp,200 * _MAX_PATH, '\0');
    dlg.m_ofn.lpstrFile=fp;
             dlg.m_ofn.nMaxFile = 200;  -----加上这句!!!