CString strsrc("F:\\ANSYS\\CASE2\\*.*\0\0");
CString strdst("F:\\ANSYS\\CASE1\\*.*\0\0");
SHFILEOPSTRUCT FileOp;
FileOp.hwnd=m_hWnd;
FileOp.wFunc=FO_COPY;
FileOp.pFrom=strsrc.GetBuffer(strsrc.GetLength());
FileOp.pTo=strdst.GetBuffer(strsrc.GetLength());
SHFileOperation(&FileOp);
strsrc.ReleaseBuffer();
strdst.ReleaseBuffer();

解决方案 »

  1.   

    cahr* ss=(LPSTR)(LPCSTR)strsrc;
    其中,(LPCSTR)是运算俯重载,返回strsrc的数据头指针,
    (LPSTR)是强制转换。
      

  2.   

    看下面:
    CString strsrc("F:\\ANSYS\\CASE2\\*.*\0\0");
    char* charPath = new char[strlen(strsrc)+1];
    charPath = strdup(strsrc);
    …………
    …………
    delete[] charPath;
      

  3.   

    对不起,改错!
    CString strsrc("F:\\ANSYS\\CASE2\\*.*\0\0");
    CString strdst("F:\\ANSYS\\CASE1\\*.*\0\0");
    SHFILEOPSTRUCT FileOp;
    FileOp.hwnd=m_hWnd;
    FileOp.wFunc=FO_COPY;
    FileOp.pFrom=strsrc.GetBuffer(strsrc.GetLength());
    FileOp.pTo=strdst.GetBuffer(strdst.GetLength());
    SHFileOperation(&FileOp);
    strsrc.ReleaseBuffer();
    strdst.ReleaseBuffer();
      

  4.   

    CString strsrc("F:\\ANSYS\\CASE2\\*.*");初始化时不要\0\0;
    CString对象可用LPCTSTR强制转换。
      

  5.   

    FileOp.pFrom = (LPCSTR)strsrc;
    FileOp.pTo = (LPCSTR)strdst;
      

  6.   

    你可以用sprintf函数
    请你试一试
      

  7.   

    CString str("mystring");
    char ch[100];
    int i=0;
    while(str.length)
    {ch[i]=str.getat(i);
    i++;
    }
    return ch;
      

  8.   

    晕!真的不行
    这样就行了
    char strs[255];
    char strd[255];
    memset(strs, 0, 255);
    memset(strd, 0, 255);
    sprintf(strs, (LPCSTR)strsrc);
    sprintf(strd, (LPCSTR)strdst);
    SHFILEOPSTRUCT FileOp;
    memset(&FileOp, 0, sizeof(FileOp));
    FileOp.wFunc=FO_COPY;
    FileOp.pFrom=strs;
    FileOp.pTo=strd;
    FileOp.fFlags = FOF_MULTIDESTFILES;
    SHFileOperation(&FileOp);