Как запустить консольный процесс внутри консоли C ++ - PullRequest
0 голосов
/ 05 января 2020

Так что в основном я разработал это c# приложение, которое имеет классный дизайн, но вместо того, чтобы переделать его обратно в c ++, я хочу упростить свою жизнь и просто запустить его внутри консольного приложения c ++. Проблема в том, что я могу только найти способ запустить приложение в консоли c ++ как внешний процесс, а не встроенный в консоль c ++ (они оба являются консольными приложениями). Есть ли способ запустить консоль c#? внутри консоли c ++?

Это мой код на c ++ int result = system(location);

Если у кого-то есть идеи, пожалуйста, дайте мне знать. Спасибо!

1 Ответ

1 голос
/ 08 января 2020

Поскольку вы уже используете команду system() в своем вопросе, я предполагаю, что вы согласны со мной, используя ее в моем решении. В этом случае просто используйте команды Batch (CMD) для запуска процесса в текущем окне.

Сначала вам нужно скомпилировать код C#. В этом посте подробно объясняется, как это сделать. Если вы хотите сделать это внутри программы на C ++, просто оберните команду компиляции в команду system() (например, system("/* path to csc.exe */ \t:exe \out:App.exe App.cs");).

После этого просто оберните имя исполняемого файла в другой system() команда (например, system(App.exe)).

Итак, если бы у меня был скрипт cs с именем "Books.cs", вот как я могу скомпилировать (при необходимости) и запустить из C ++:


// PATH_TO_CSC should be replaced with the path to csc.exe on your machine

int main()
{
    system("PATH_TO_CSC \t:exe \out:Books.exe Books.cs");
    system(Books.exe);
}

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...