我目前正在开发一个c ++项目,我制作了一个C#wpf启动器。
这些可行:
但是,从c#代码启动调试文件夹中的file.exe会导致c ++程序在启动时崩溃。 我甚至尝试在c#中运行相同的命令行,通过键入它来工作,这会导致崩溃。
将调试器附加到c ++进程后,崩溃的原因似乎是缺少资产(一些着色器代码)。但是,资源文件夹位于调试目录中,正如我所说,程序通过单击运行。
我在c#中尝试过:
ProcessStartInfo
是什么导致这种情况?
答案 0 :(得分:1)
如Vikas所述,需要设置工作目录,或者似乎Windows不允许进程访问文件。
以下代码对我有用:
ProcessStartInfo startInfo = new ProcessStartInfo();
startInfo.CreateNoWindow = false;
startInfo.UseShellExecute = false;
startInfo.WorkingDirectory = System.IO.Path.GetDirectoryName(this.PathToExeTextBox.Text);
startInfo.FileName = this.PathToExeTextBox.Text;
Process.Start(startInfo);