如何从XNA游戏项目启动和调试控制台行应用程序

本文关键字:调试 控制台 应用程序 启动 项目 XNA 游戏 | 更新日期: 2023-09-27 18:15:14

我的解决方案有3个项目。两个主机线应用程序和一个XNA游戏项目(以及一个XNA内容项目)。当我使用以下代码从一个控制台应用程序调用另一个控制台应用程序时:

    ProcessStartInfo startInfo = new ProcessStartInfo
    {
        FileName = @"..'..'..'..'..'ChildProcess'bin'Debug'ChildProcess.exe",
        UseShellExecute = false,
        CreateNoWindow = false,
        RedirectStandardOutput = true,
        RedirectStandardInput = true
    };
    Process process = Process.Start(startInfo);
    process.WaitForExit();

我可以在ChildProcess应用程序中设置一个断点并调试它。然而,如果我将此代码复制到XNA游戏项目(在其Main方法的开始)并将其设置为启动项目,则ChildProcess应用程序正在启动,但ChildProcess应用程序中的断点从未被击中。我试着改变ProcessStartInfo init属性,但它没有帮助。

我如何调试控制台应用程序时,它被称为这种方式?我的XNA游戏运行在窗口模式

如何从XNA游戏项目启动和调试控制台行应用程序

您可以在挂起状态下启动子进程,并手动附加调试器…

不幸的是,.net似乎无法直接做到这一点…然而,你可以使用pinvoke调用winapi CreateProcess()与CREATE_SUSPENDED标志…