2016-01-13 2 views
-1

Я хочу сделать приложение в C# (.NET), где у вас будет, скажем, richtextbox, где вы можете написать код на C++ и кнопку для отладки и запуска приложения, написанного в richtextbox! Как это сделать ? Как я могу интегрировать компилятор C++ (например, G++ 5.3.0 C++0X ENABLED) в мое приложение для его запуска? Я знаю, что для сайтов это может быть использование Ideone Api! Я могу получить компилятор от MinGW/bin!Как вы интегрируете компилятор C++ в приложение C#?

+4

Есть ли [Google] (https://www.google.co.in/) вниз? –

+0

@ FᴀʀʜᴀɴAɴᴀᴍ Я не нашел ничего подходящего :( –

ответ

0

Использование System.Diagnostics.Process.Start для запуска компилятора C++, как и любого другого внешнего процесс:

System.Diagnostics.Process pProcess = new System.Diagnostics.Process(); 
pProcess.StartInfo.FileName = @"path\to\gcc"; 
pProcess.StartInfo.Arguments = "-Wall myFile.cpp"; //argument 
pProcess.StartInfo.UseShellExecute = false; 
pProcess.StartInfo.RedirectStandardOutput = true; 
pProcess.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; 
pProcess.StartInfo.CreateNoWindow = true; //not diplay a windows 
pProcess.Start(); 
string output = pProcess.StandardOutput.ReadToEnd(); //The output result 
int exitCode = pProcess.WaitForExit(); 

Затем анализирует код выхода/выхода, чтобы увидеть, есть ли какая-либо ошибка.

С отладчиком будет намного больше проблем (например, gdb - поскольку он имеет полностью интерфейс командной строки), вы можете отправлять команды с использованием свойства StandardInput класса Process, но это будет довольно сложно. Как вы можете видеть .Net lib to control remote GDB библиотеки пока нет.

+0

Итак, я получаю эту ошибку: 'Дополнительная информация: Доступ запрещен!! Папка с complier доступна только для чтения, я не могу ее изменить! Я сделал путь компилятора global (Я добавляю путь к настройкам среды, системному пути) и в cmd работает! Что делать? –

+0

Если он добавлен в путь, вы можете просто использовать имя 'gcc' вместо полного пути. Программы обычно читаются только - это не проблема, но пользователь, который запускает вашу программу, может иметь ограниченный доступ к этому каталогу, интересный ... – csharpfolk

+0

Теперь работает! Я создал пакетный файл для аргументов с именем 'start.bat', и мне не нужны никакие аргументы! –

Смежные вопросы