System.Diagnostics.Process: когда я запускаю программу на C ++, которая создает выходной файл и что-то пишет, выходной файл не создается - PullRequest
0 голосов
/ 14 сентября 2010

Когда я запускаю программу на C ++, которая создает выходной файл и что-то записывает, выходной файл не создается, хотя программа работает нормально, когда я просто дважды щелкаю по нему из Windows Explorer.

Это код C #, который я использую для запуска программы:

            try
            {
                Process p = StartProcess(ExecutableFileName);
                p.Start();
                p.WaitForExit();
                Log("Program finished in " + ((p.ExitTime - p.StartTime).Milliseconds / 1000m) + " seconds with code " + p.ExitCode + "\n");
            }
            catch
            {
                Log("The program couldn't be started.");
            }

UPDATE

Я только что узнал, почему это происходит.

Очевидно, что когда я запускаю его с C #, программа на C ++ не видит входной файл в относительном каталоге, но когда я явно указываю его

ifstream in("C:\\Alex\\primes.in");

он получает это и все работает! Теперь мне нужно заставить его работать с относительными путями к файлам ...

Ответы [ 2 ]

1 голос
/ 14 сентября 2010

Вот краткое изложение нашего обсуждения проблемы.Оказалось, что выходной файл находился в папке отладки программы C #, а не в каталоге, где находилось приложение C ++, и ожидаемый результат.Проблема решается путем указания свойства рабочего каталога проекта.

0 голосов
/ 14 сентября 2010

Вы должны вызвать Close () для процесса следующим образом:

            try
            {
                Process p = StartProcess(ExecutableFileName);
                p.Start();
                p.WaitForExit();

                //THIS HERE
                p.Close();                    

                Log("Program finished in " + ((p.ExitTime - p.StartTime).Milliseconds /1000m) + " seconds with code " + p.ExitCode + "\n");


            }
            catch
            {
                Log("The program couldn't be started.");
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...