Execute C++ exe from C# form using Process.start()
I'm trying to create a C# form app that will allow me to use all of my previous C++ programs from one central program.
I'm able to open the exes with Process.Start()
, however it does not compile the code correctly.
Example code:
Process.Start("C:\\\Documents and Settings\\\dan\\\Desktop\\\test.exe");
This will bring up the console and act like it's running, but it does not run like when I normally compile out of the C++ editor. Is there a startinfo
variable I need to set to signify that it's a C++ program or something along that line?
Also, is there any way to execute a C++ program using process.start
that will allow me to pass it variables through the command line via a开发者_如何转开发rgc
and argv
?
Thanks
There are only a couple of differences when you use Process.Start the way you did vs. when you just execute the program directly. Both can be addressed by using ProcessStartInfo.
- The WorkingDirectory will not be the same. Set this to the path containing the executable to get the same behavior.
- Set UseShellExecute to true, so the windows shell is used to execute the process.
As for adding command line arguments: You can do that via ProcessStartInfo.Arguments. There shouldn't be one required due to it being a C++ application, however.
So far there's only enough info to answer your final question. Yes, you can include command line arguments as shown here. Look at the section titled "=== Program that runs EXE (C#) ==="
To add command line arguments:
Process process = new Process();
process.StartInfo.FileName = "C:\\Documents and Settings\\dan\\Desktop\\test.exe";
process.StartInfo.Arguments = ""; // Put your arguments here
process.Start();
After the program has been compiled into an EXE, it shouldn't matter what language it was written in.
As for the program arguments, you need to take a look at the ProcessStartInfo class, and the override of Process.Start() that uses it: Process.Start(ProcessStartInfo)
I faced a similar problem in python, are you expecting verbose output?
In my case the output buffer got full and hence execution stalled.
精彩评论