Как вызвать процесс на выполнение правильно? - C#
Формулировка задачи:
Здравствуйте!
Хотел написать библиотеку C++ + OpenCv. Но судьба решила иначе. Бросил эту идею. Написал обычное консольное приложение на с++ с использование OpenCv. Приложение работает 100% прально. А ехе файл решил использовать как библиотеку. Т.е. вызываю из кода это ехе, он отработал, я взял результаты и все. Но это в теории. На практике получилось все подругому.
Наворотил примерно такую конструкцию:
Я сохраняю картинку с определенным именем, которое прописано в коде c++. Вызываю процесс. Он этот файл берет, обрабатывает, результа сохраняет в _target.png.
Но почему то файл _target.png я не получаю. Хотя процесс судя по всему запускается(окно консоли появляется).
Т.е. если вызываю программно - НЕ РАБОТАЕТ.
Но если двойным кликом нажму на ht.exe - ВСЕ РАБОТАЕТ.
Помоги разобраться.
Заранее спс!
private void OpenCvButton_Click(object sender, EventArgs e) { string PATH_OPENCV_FOLDER = Path.GetFullPath(@"..\..\OpevCv\");//folder with opencv libs and exe string S = Path.Combine(PATH_OPENCV_FOLDER, "_source.png"); // source bitmap string T = Path.Combine(PATH_OPENCV_FOLDER, "_target.png"); // target bitmap string EXE = Path.Combine(PATH_OPENCV_FOLDER, "ht.exe"); // exe file, which execute hough transforamtion targetPictureBox.Image.Save(S, ImageFormat.Png);// здесь все отлично работает, файл _source.png сохраняется рядом с ht.exe Process process = new Process(); process.StartInfo.FileName = EXE; process.StartInfo.WindowStyle = ProcessWindowStyle.Hidden; process.Start(); process.WaitForExit(); targetPictureBox.ImageLocation = T;// и еще вот здесь получаю ошибку почему-что }
Решение задачи: «Как вызвать процесс на выполнение правильно?»
textual
Листинг программы
ProcessStartInfo startInfo = new ProcessStartInfo(EXE) { WindowStyle = ProcessWindowStyle.Hidden, WorkingDirectory = PATH_OPENCV_FOLDER // <------ }; Process process = Process.Start(startInfo); process.WaitForExit(); targetPictureBox.ImageLocation = T;
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д