Domanda

Sto cercando di creare un modulo C # app che mi permetterà di utilizzare tutti i miei precedenti programmi C ++ da un programma centrale.

Sono in grado di aprire i exes con Process.Start(), tuttavia non viene compilato il codice correttamente.

Esempio di codice:

Process.Start("C:\\\Documents and Settings\\\dan\\\Desktop\\\test.exe");

Si aprirà la console e agire come è in esecuzione, ma non correre come quando io normalmente compilo fuori dal C ++ Editor. C'è una variabile startinfo ho bisogno di impostare per indicare che si tratta di un programma C ++ o qualcosa lungo quella linea?

Inoltre, non v'è alcun modo per eseguire un programma C ++ utilizzando process.start che mi permetterà di passarlo variabili attraverso la riga di comando tramite argc e argv?

Grazie

È stato utile?

Soluzione

Ci sono solo un paio di differenze quando si utilizza Process.Start il modo che hai fatto contro quando basta eseguire direttamente il programma. Entrambi possono essere affrontate utilizzando ProcessStartInfo .

  1. Il WorkingDirectory non sarà il stesso. Impostare questo al percorso che contiene il file eseguibile per ottenere lo stesso comportamento.
  2. UseShellExecute al vero, così il guscio finestre viene utilizzato per eseguire il processo.

Per quanto riguarda l'aggiunta di parametri: Si può fare tramite ProcessStartInfo.Arguments . Non ci dovrebbe essere una richiesta a causa di esso che è un applicazione C ++, tuttavia.

Altri suggerimenti

Finora c'è solo abbastanza informazioni per rispondere alla tua domanda finale. Sì, è possibile includere argomenti della riga di comando come mostrato qui . Guardate la sezione intitolata "=== programma che viene eseguito EXE (C #) ==="

Per aggiungere argomenti della riga di comando:

Process process = new Process();
process.StartInfo.FileName = "C:\\Documents and Settings\\dan\\Desktop\\test.exe";
process.StartInfo.Arguments = ""; // Put your arguments here
process.Start();

Dopo che il programma è stato compilato in un file EXE, non dovrebbe importare che lingua è stato scritto in.

Per quanto riguarda gli argomenti del programma, è necessario dare un'occhiata alla classe ProcessStartInfo, e l'override di Process.Start () che lo utilizza: Process.Start (ProcessStartInfo)

Ho affrontato un problema simile in python, si aspetta l'output dettagliato?

Nel mio caso il buffer di uscita ottenuto pieno e quindi esecuzione stallo.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top