从Visual Studio 2010中的.NET项目启动C ++项目

时间:2014-04-01 13:59:58

标签: c# c++ visual-studio-2010

我有以下问题:

我有两个项目,Project Game包含使用SDL库以C ++编码的游戏。 Project Launcher是一个C#.NET项目,它在启动Project Game之前提供了从哪里选择选项的界面。

我的问题是 A)如何从Project Launcher中启动Project Game? B)如何将Project Launcher中的参数传递给Project Game?

我还没有找到明确的解决方案,只是在这里和那里低声说。对于参数,显而易见的是,简单地使用参数调用.exe并在C ++中读取它们,但我想知道是否有更简洁的方法来构建.NET。任何帮助将不胜感激。如果我找到解决方案,我会在这里发布。

2 个答案:

答案 0 :(得分:1)

我目前没有IDE,所以我不确定,但我记得这样的事情可以解决问题。

ProcessStartInfo proc = new ProcessStartInfo();
//Add the arguments
proc.Arguments = args; 
//Set the path to execute
proc.FileName = gamePath;
proc.WindowStyle = ProcessWindowStyle.Maximized;

Process.Start(proc);

编辑: 我的错,我没有看到你在寻找不使用传递参数进入游戏过程的方法。我留下回复仅供其他人参考! :)

答案 1 :(得分:0)

.NET框架包含一个名为Process的类,它包含在Diagnostics命名空间中。您应该包含命名空间,使用System.Diagnostics然后启动您的应用程序,如:

using System.Diagnostics;

// Prepare the process to run
ProcessStartInfo start = new ProcessStartInfo();
// Enter in the command line arguments, everything you would enter after the executable name itself
start.Arguments = "readme.txt"; 
// Enter the executable to run, including the complete path
start.FileName = "notepad";
// Do you want to show a console window?
start.WindowStyle = ProcessWindowStyle.Hidden;
start.CreateNoWindow = true;

//Is it maximized?
start.WindowStyle = ProcessWindowStyle.Maximized;

// Run the external process & wait for it to finish
using (Process proc = Process.Start(start))
{
     proc.WaitForExit();

     // Retrieve the app's exit code
     exitCode = proc.ExitCode;
}