0

これは、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 の確認から始めるべきでしょうか?

4

1 に答える 1