代码很简单:char strCmd[MAX_PATH];
strcpy(strCmd, "\"d:\pdftk141\pdftk.exe\" \"D:\\中文\\test1.pdf\" cat 2-5 output \"D:\中文test2.pdf\"");STARTUPINFO StartupInfo;
PROCESS_INFORMATION ProcessInfo; ZeroMemory( &ProcessInfo, sizeof( ProcessInfo ) );
ZeroMemory( &StartupInfo, sizeof( StartupInfo ) );
StartupInfo.cb = sizeof(StartupInfo);
if (!CreateProcess( NULL, strCmd,NULL,NULL,FALSE, 
CREATE_NO_WINDOW,NULL,NULL,&StartupInfo,&ProcessInfo))
{
DWORD err = ::GetLastError();
MessageBox(_T("进程失败。"), _T("提示"));
return FALSE;
}
WaitForSingleObject ( ProcessInfo.hProcess ,INFINITE );现象是在程序里没有任何响应,在DOS命令行下运行,才出现提示:
This application has requested the Runtime to terminate it in an unusual way.
Please contact the application's support team for more information.
自己分析可能和当前路径有关,但不确定,请高手看一下。

解决方案 »

  1.   

    strcpy(strCmd, "\"d:\\pdftk141\\pdftk.exe\\" \"D:\\中文\\test1.pdf\" cat 2-5 output \"D:\\中文test2.pdf\"");
      

  2.   

    strcpy(strCmd, "\"d:\pdftk141\pdftk.exe\" \"D:\\中文\\test1.pdf\" cat 2-5 output \"D:\中文test2.pdf\"");
    估计是你的这个写的有问题
      

  3.   

    会不会和d:\pdftk141\pdftk.exe目录下的依赖库有关?
    CreateProcess前SetCurrentDirectory到d:\pdftk141\pdftk.exe试试。
      

  4.   


    这个试过一次,确实有用,但pdftk.exe本身并不需要任何依赖库啊
      

  5.   

    这个还是应该依赖库的原因,可以尝试把pdftk141目录下对应的文件搬到exe一起,然后定位看是哪些文件有依赖。
      

  6.   

    说明d:\pdftk141\pdftk.exe依赖了和它路径相关的东西了呗,不一定是dll,至于具体是什么只能是你自己看了。
      

  7.   

    pdftk141目录下只有一个exe。差不多就结贴了