C++ um externes Prog zu öffnen

DerKoenig

Mitglied
Moin Leude,

bin absoluter newbe und hab mich mal son bissl durchs Netz gehangelt und hab mir folgendes zusammengeschustert:

(****t aber nich so richtig^^) Edit: ka warum das mit ***** versehen ist sollte heissen: f-u-n---z-t (muss wohl ein schimpfwort in ner andern sprache sein^^)

Code:
  #include <stdio.h>
  #include <string>
  #include <cstdlib>

  int main(void)
  {
    execute("test.bat");
    return 0;
  }

  int execute(std::string path)
  {
    std::system.diagnostics.process.start(path);
    return 0;
  }

Na was mach ich falsch.


Fehlermeldung ist übrigens: y.cpp In function `int Execute(std::string)':
y.cpp:13: error: request for member `diagnostics` in `system`, which is of non-class type `int ()(const char*)´
 
Zuletzt bearbeitet:
Die Fehlermeldung sagts doch schon: diagnostics ist keine Klasse, sonder eine Methode nach dem Schema:
int diagnostics(const char *);

Also ".process" usw. kann da nicht gehen.

edit: Sehe grad, dass es in .NET einen Diagnostics-Namespace gibt.

Suchst du evt. CreateProcess?
 
:-P Jetzt tu mal so, als wäre es nicht alles selbstverständlich für dich ;-P

Ok ich schildere mein vorhaben: Ich will ein externes Prog aufrufen, hab gegoogelt, aber nie so richtig ne Lösung gefunden wo wirklich alles erklärt ist. Nur immer Codeschnipsel, also habe ich selbst versucht, dass oben ist rausgekommen.

Danke im vorraus :-D (Bitte um Erklärung wie man sowas macht)
 
Ja, system geht natürlich auch.
Stößt aber schnell an seine Grenzen, zB ob das aufrufende Programm warten soll oder nicht; oder bei GUIs.

CreateProzess ist zwar auf den ersten Blick viel umständlicher; aber irgendwann braucht man es wahrscheinlich sowieso
 
Zurück