これは、C# コードから extern 実行可能ファイル (アンマネージ) を実行するために使用するコードです。
static void Solve()
{
Process newProc = new Process();
newProc.StartInfo.WorkingDirectory = Path.Combine(Directory.GetCurrentDirectory(), "Data");
newProc.StartInfo.FileName = "solver.exe";
newProc.StartInfo.CreateNoWindow = true;
newProc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
try
{
newProc.Start();
newProc.WaitForExit();
}
catch (Exception e)
{
StreamWriter errorReporter = new StreamWriter("ErrorLog.txt", true);
errorReporter.WriteLine(message);
errorReporter.Close();
}
newProc.Close();
}
私の場合、手動で開始すると、ソルバーは約 30 秒間動作します。solver.exe アクションの結果はファイルです。しかし、コードから呼び出すと、ほぼ同時に終了し、何もしません。そこからの出力はなく、出力ファイルは生成されません。
また、プロセスは正しく開始され、エラーはスローされません。上記のコードに問題はありますか? それとも、solver.exe の確認から始めるべきでしょうか?