C++ 如何使用createProcess()启动dx应用程序
使用此代码段:C++ 如何使用createProcess()启动dx应用程序,c++,process,directx,C++,Process,Directx,使用此代码段: STARTUPINFO si = { sizeof(si) }; PROCESS_INFORMATION pi; char szExe[] = "C:\\Apps\\Desktop\\Release\\simplesample.exe"; //char szExe[] = "C:\\Windows\\System32\\notepad.exe"; if(CreateProcess(0, szExe, 0, 0, 0, 0, 0
STARTUPINFO si = { sizeof(si) };
PROCESS_INFORMATION pi;
char szExe[] = "C:\\Apps\\Desktop\\Release\\simplesample.exe";
//char szExe[] = "C:\\Windows\\System32\\notepad.exe";
if(CreateProcess(0, szExe, 0, 0, 0, 0, 0, 0, &si, &pi))
{
// optionally wait for process to finish
WaitForSingleObject(pi.hThread, 0);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
}
return 0;
当我使用notepad.exe时,notepad会启动
但是,当我使用simplesample.exe的路径时,它会启动simplesample并立即崩溃。我无法理解为什么simplesample不能从createProcess正确启动
我可以按原样从命令提示符启动simplesample.exe
PS:
Simplesample
是一个dx示例应用程序,使用winmainTy传递目录,其中Simplesample.exe
是的lpCurrentDirectory
参数。很可能,此程序在当前文件夹中搜索资产、着色器或DLL,但收到调用进程的目录,因此无法找到它们
发件人:
lpCurrentDirectory[in,可选]
进程当前目录的完整路径。该字符串还可以指定UNC路径
如果此参数为NULL,则新进程将具有与调用进程相同的当前驱动器和目录。(此功能是
主要用于需要启动应用程序和
指定其初始驱动器和工作目录。)