现在我的程序要调用MySQL的备份工具来对MySQL数据库进行备份。不知你使用过MySQL没有,MySQL的备份工具mysqldump是一个控制台程序,双击它并不能打开它的界面。在运行对话框输入备份命令也不行,必须要在cmd下输入命令运行才行。开始我以为通过CreatProcess函数可以调用mysqldump.我的代码是这样的:STARTUPINFO si;
PROCESS_INFORMATION pi;
si.cb=sizeof(STARTUPINFO);
si.lpReserved=NULL;
si.lpDeaktop=NULL;
si.lpTitle=NULL;
si.dwFlags=STARTF_USESHOWWINDOW;
si.wShowWindow=SW_SHOW;
si.cbReserved2=0;
si.lpReserved2=NULL;
CString strProcess;
strProcess.Format("mysqldump --user=root --password=828707 stu>E:\\114.dmp");::CreatProcess(NULL,(lpstr)(LPCTSTR)strProcess,NULL,NULL,FALSE,0,NULL,NULL,&si,&pi);上面mysqldump --user=root --password=828707 stu>E:\\114.dmp是mysql的备份命令,功能是对数据库stu进行备份,生成备份文件E:\114.dmp.程序运行没有出错,但是结果并没有生成备份文件114.dmp。如果先在运行对话框里输入cmd,弹出cmd的界面,然后输入mysqldump --user=root --password=123456 stu>E:\114.dmp 这样就能生成备份文件114.dmp。     然后我用过ShellExecute(this->m_hWnd,"open","mysqldump","--user=root --password=828707 stu>E:\\114.dmp","", SW_SHOW );
不行,出现不能访问的错误。再用WinExec("mysqldump --user=root --password=828707 stu>E:\\114.dmp",SW_SHOW);  也不行。      我想能用的都用完了。

解决方案 »

  1.   

    是 WinExec("cmd.exe /k a.exe",SW_SHOW);
    /k后面的可用 " "引起来
      

  2.   

    WinExec("cmd /k \"mysqldump --user=root --password=828707 stu>E:\\114.dmp\"",SW_SHOW); 试试??
      

  3.   

    WinExec("cmd /k \"mysqldump --user=root --password=828707 stu>E:\\114.dmp\"",SW_SHOW); 试试??      大虾,这个是对的。非常感谢你!
      

  4.   

    不过假使我的MySQL不是安装在C盘的Program File文件夹下,在这里
    WinExec("cmd /k \"mysqldump --user=root --password=828707 stu>E:\\114.dmp\"",SW_SHOW);     要不要指定mysqldump的路径啊?
      

  5.   

    错了,大虾,你的
    WinExec("cmd /k \"mysqldump --user=root --password=828707 stu>E:\\114.dmp\"",SW_SHOW);  也有问题。
        这样做只是弹出一个cmd界面,上面是E:\>   正确的应是 WinExec("cmd /k mysqldump \"--user=root --password=828707 stu>E:\\114.dmp\"",SW_SHOW);     不过还是要谢谢你!