【问题标题】:Using CreateProcess to run a game executable使用 CreateProcess 运行游戏可执行文件
【发布时间】:2016-05-12 14:08:46
【问题描述】:

我目前正在制作自定义 UI,因此我正在尝试使用 CreateProcess 从我的 C++ 应用程序中启动游戏。到目前为止,这是我的代码

PROCESS_INFORMATION Processinfo;
STARTUPINFO StartupInfo;
ZeroMemory(&StartupInfo, sizeof(StartupInfo));
StartupInfo.cb = sizeof(StartupInfo);
ZeroMemory(&Processinfo, sizeof(Processinfo));
if (CreateProcess(TEXT("C:\\Program Files(x86)\\Steam\\steamapps\\common\\Surgeon Simulator VR Meet The Medic\\Win32\\SurgeonVR.exe"),
    GetCommandLineA(),
    NULL,
    NULL,
    false,
    CREATE_SUSPENDED,
    NULL,
    NULL,
    &StartupInfo,
    &Processinfo))
{
    system("pause");
}

我不太确定我哪里出错了,因为我以前从未使用过 CreateProcess,但是在查看了大量示例之后,我试图模仿其他人所做的事情,但没有成功。流程没有被创建,并且游戏未启动。非常感谢任何帮助!

【问题讨论】:

  • 有什么问题?
  • 进程未创建,游戏未启动。抱歉应该在帖子中提到!
  • 当然它不会运行 - 它是通过传递 CREATE_SUSPENDED 标志来创建的。
  • 我把那个参数设置为null,还是不行
  • 通过使用 char* path = "C:\\Program Files(x86)\\Steam\\steamapps\\common\\Surgeon Simulator VR Meet The Medic\\Win32\\SurgeonVR 解决了这个问题。可执行程序”;然后使用路径作为参数代替

标签: c++ executable createprocess launching


【解决方案1】:

通过使用 char* path = "C:\Program Files(x86)\Steam\steamapps\common\Surgeon Simulator VR Meet The Medic\Win32\SurgeonVR.exe" 解决了这个问题;然后使用路径作为参数。我认为问题在于路径变量以及使用 CREATE_SUSPENDED 作为参数的错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多