我在MFC中用CFileDlg获得了  CSTRING 类型 文件路径,
然后想用WinExec( path,SW_SHOW);函数来打开这个文件,
但是PATH要求的是char *  ,路劲中又含有中文字符,怎么将这个 路径转换成 CHAR*的 ,或者有什么其他MFC的函数
可以打开这个文件吗?

解决方案 »

  1.   

    用完记得
    CString::ReleaseBuffer
      

  2.   

    WinExec( path,SW_SHOW);
    应该可以啊,有中文也没关系
    CString szName = "d:\\我的文档\\Run-Arg\\Bin\\TongueAnalyzer.exe ";
     CString abc = "123";
     szName += abc;
     WinExec(szName,SW_SHOWNORMAL);
      

  3.   

    恢复四楼 我的CSTRING 用的是 宽字符的 用的VS2010,那个WinExec( path,SW_SHOW);不能使用宽字符,
    5楼我试试
      

  4.   

    比如我的
    文件路径为F:\软件\编程\C++\函数查询.exe如何转为char的在WinExec(szName,SW_SHOWNORMAL);运行或者怎么用其他方法
      

  5.   

    WideCharToMultiByte
    宽字符串转多字节字符串
      

  6.   

    WinExec()是为16位系统保留的API,推荐使用CreateProcess(),有Unicode版本,无须转化成char*,如果非要用WinExec(),那就得用WideCharToMultiByte进行字符转化了。
      

  7.   

    回复11楼 CReateProcess()试用了他没反应。
      

  8.   

    CreateProcess()检查下各个参数设置正确没有,MSDN中有示例的