0

我需要处理的情况是:

1,我需要生成一个临时文件(路径和名称是使用GetTempFileName()创建的
。2,使用这个临时文件作为createProcess()的命令行。

代码如下所示:

char * tempFile = GenerateTmpFile ();   // self defined function (call GetTempFileName() to get temp file, return temp file path + name ,  so tempFile looks like c:\temp\x.tmp

char szCmd[1024];
strcpy(szCmd, "child.exe ");
strcat(szCmd, tempFile);   // so example of szCmd is: child.exe c:\temp\x.tmp

CreateProcess(NULL,
              szCmd,
              ...
              );

但是CreateProcess总是失败,返回错误代码2(2来自GetLastError(),CreateProcess返回0),我认为问题是因为临时文件路径,如果我给

szCmd ="child.exe c:\\temp\\x.tmp" 

手动,它工作正常。

有谁知道我如何让 CreateProcess 使用从 getTempFileName() 生成的临时文件路径+名称?

更新:我尝试在路径中添加'\'以使'\'成为双反斜杠,因此路径例如是:

c:\\temp\\x.tmp 

它仍然不起作用。

为什么它与使用字符串文字调用 CreateProcess 不同?

 CreateProcess(NULL,
               "child.exe c:\\temp\\x.tmp",
               ...);
4

0 回答 0