C-Programm aus C-Programm starten ???

Tutorials.at
Verfügbare Informationen zu "C-Programm aus C-Programm starten ???"

  • Qualität des Beitrags: 0 Sterne
  • Beteiligte Poster: Stevox - exbs - DrPhil_Guth
  • Forum: Tutorials.at
  • Forenbeschreibung: Programmierforum
  • aus dem Unterforum: C / C++
  • Antworten: 12
  • Forum gestartet am: Mittwoch 19.04.2006
  • Sprache: deutsch
  • Link zum Originaltopic: C-Programm aus C-Programm starten ???
  • Letzte Antwort: vor 17 Jahren, 4 Monaten, 12 Tagen, 10 Stunden, 5 Minuten
  • Alle Beiträge und Antworten zu "C-Programm aus C-Programm starten ???"

    Re: C-Programm aus C-Programm starten ???

    Stevox - 13.12.2006, 21:06

    C-Programm aus C-Programm starten ???
    Hallo!

    Also ich hab schon mehrere kleinere (Mathe-) Programme mit C geschrieben.
    Jetzt würde ich gern sowas wie ein Hauptprogramm machen.
    Man sollte zb auswählen können:
    1. .... Flächenrechner
    2. .... Volumsrechner
    3. .... ..... usw.

    Cool wärs, wenn ich nach beenden (durchlaufen) des damit gestarteten Programms wieder ins Hauptprogramm zurückkehre.

    Geht das? Wenn, wie? ... hab auch schon hier gesucht und gegoogelt, aber leider vergebens.



    Danke schonmal im Vorraus,
    Stevox



    Re: C-Programm aus C-Programm starten ???

    exbs - 13.12.2006, 23:00


    gibt mehrere möglichkeiten.

    du könntest einzellne funktionen schreiben, in denen jeweils deine kleine programme sind, vilel mehr aber das was sie leisten und diese dann in dein "hauptprogramm" (welches damit zum supermatheprog wird :wink:) einbauen. Damit hättest du einenen code. das ganze schön verpackt in eine schleife.

    du könntest natürlich auch mit "system("c:\\mein\\datei\\pfad.exe")" deine programme aufrufen, was allerdings nicht besonders gut ist.

    sooo und du könntest die anderen funktionen in andere quelltexte schreiben und diese dann in den "maincode" einbinden.

    ich denke diese drei möglichkeiten sind gute ansätze.

    ber bei hilfe steh ich dir gerne noch mal zur verfügung.



    Re: C-Programm aus C-Programm starten ???

    Stevox - 14.12.2006, 17:31


    Danke für die Antwort!

    Also habs jetzt mal mit dem system Befehl versucht. -vorher auch mit winexec.

    Aber es kommt diese Fehlermeldung:




    Ist die C0S.OBJ im falschen Ordner oder was kann da sein?



    Re: C-Programm aus C-Programm starten ???

    exbs - 14.12.2006, 17:59


    ok also als erstes mal etwas zu "void main(void)" ... man schreibt "int main()"!

    soo und jetzt ja zu deinem fehler ... ich vermute, dass das an dem " " (also nen leerzeichen :wink: ) in deinem call befehl liegt. versuch mal das: Code: system("E:\\Daten\\Turbo\0x20C\\TCOUT\\RECHEN.EXE"); das \0x20 liefert an dieser stelle ein leerzeichen, weil der system-befehl nur bis zum leerzeichen liest.

    wenn das nicht geht, kopier die datei doch einfach mal nch "e:\" und ruf dort auf, nur um meine theorie zu bestätgen.



    Re: C-Programm aus C-Programm starten ???

    Stevox - 14.12.2006, 19:07


    Juhu! THX! Es hat gfunzt!

    Der Fehler war der Pfad, in der die Rechnen.exe lag. Hab den "Turbo C" Ordner einfach in TC umbenannt und siehe da ... es geht!


    Stevox



    Re: C-Programm aus C-Programm starten ???

    Stevox - 14.12.2006, 21:27


    So hab da noch ne frage ...

    Ist es evt. auch möglich cmd zu öffnen und dort schon eine vorher gegebene eingabe zu übernehmen? - oder bei einem c-programm zb die Variable b=3 setzen?


    Zitat: ok also als erstes mal etwas zu "void main(void)" ... man schreibt "int main()"!
    Also unser Informatik Lehrer hats uns so gesagt. Void bedeutet ja soviel wie nichts oder? ... Was genau ist da der unterschied zwischen "void main(void)" und "int main()"? Bis jetzt hat alles auch so geklappt ... :D



    Re: C-Programm aus C-Programm starten ???

    exbs - 14.12.2006, 22:02


    Njaaaa. Also in meinen Augen ist das nichts halbes und nichts ganzes. Sry. Wenn ich dich richtig verstehe (!?), dann hast du Programm a, dieses errechnet das Produkt zweier Zahlen, und in Programm b soll eine Variable auf dieses Produkt gesetzt werden (zum Bsp.). Und das alles möchtest du über die CommanD - Konsole machen. Also, das würde ich nicht so machen.

    Du könntest doch ein Programm schreiben ungefähr so:
    Code: int main()
    {
        eingabe deiner Variablen;
       
        Aufruf der Funktionen, welche das berechnen wofür die gedacht sind;
       
        .. [BSP] ..
       
        eingabe a;
        eingabe b;
       
        produkt = multiplizierer(a, b);
    }

    int multiplizierer(int a, int b)
    {
        return a * b; <--- dies liefert Produkt von a und b zurück an "produkt";
    } Sprich du hast ein Programm und dort rufst du Funktionen auf, nicht eine andere EXE. Dies mit "system" geht auch nur auf Windows.

    Du könntest, wenn du unbedingt das so haben möchtest, auch ein .txt erstellen und dort die Eingabe aufzeichnen. Dann stelllst du sicher, dass sich die anderen Programme ihre Werte dort herholen. Aber auch das ist nicht besonders "schön".

    Kannst du mir erklären worum (sprich um was für Programme) es sich hier dreht. Nur rechnen?

    Letztentlich (ooooh Gott RS :roll: ) solltest du dich nicht zu sehr an der CMD orientieren, weil du später oder wenn die Probleme wesentlich (das werden SIE) komplexer werden so nicht mehr arbeiten kannst. Suche dir eine andere Lösung. Wobei man dir hier natürlich hilft :wink: .

    Zitat: Also unser Informatik Lehrer hats uns so gesagt. Void bedeutet ja soviel wie nichts oder? ... Was genau ist da der unterschied zwischen "void main(void)" und "int main()"? Bis jetzt hat alles auch so geklappt ... Die Frage ist nicht, ob das klappt, das tut es. Aber es ist seit dem neuen C99 standard bsolut "illegal". Un bei Standardkonformen Compilern wird dies auch eine undefinierbare Fehlermeldung erzeugen. Dein Lehrer scheint nicht auf dem neusten Stand zu sein.



    Re: C-Programm aus C-Programm starten ???

    Stevox - 14.12.2006, 22:15


    Also hab das anders gemeint:
    Man hat Programm a (dort wird nichts berechnet). Über programm a wird programm b gestartet. In programm b wird jetzt zb ganz simpel a*b=c gerechnet. Aber die Variablen a, und b, werden vorher schon im Programm a definiert und in Programm b übernommen.
    Hoffe das war verständlich :?

    Für mich wäre es halt interessant aus dem einen programm a, command zu starten und dorthin zb "shutdown -t..." übernehmen. Was aber sicher net wirklich einfach sein dürfte ...



    Re: C-Programm aus C-Programm starten ???

    exbs - 14.12.2006, 22:35


    Ok gut das kann man machen. Allerdings sag ich dir, das ist nicht schön.

    mmh folgendes:

    Ein "main" kann Variablen übergeben bekommen, welche du dann natürlich auch übergeben muss.

    Ich sag dir aber gleich, ich habe das noch nicht gemacht und das was ich jetzt schreibe ist aus dem Kopf nen "Grundgedanke".

    [ .. ]
    system("C:\\summe.exe a b"); <-- a und b sind übergebene variablen.
    (ABER mn bekommt sie aufgrund des Leerzeichen so sicher nicht übergeben. :? ) .. nur wir man Jetzt nicht a und b übergibt sondern den Wert kann ich dir nicht sagen.

    =anderes PROG=
    int main(int a, int b)
    int summ = a + b;

    nja nur ne Idee prabier es.



    Re: C-Programm aus C-Programm starten ???

    exbs - 14.12.2006, 22:40


    Zitat: Für mich wäre es halt interessant aus dem einen programm a, command zu starten und dorthin zb "shutdown -t..." übernehmen. Was aber sicher net wirklich einfach sein dürfte ... Du und dein übernehmen :wink: :roll: . Ich habe mal nen shutdown-timer geschrieben. Ich wollte am Anfang wie du alles mit system machen, habe aber dann eine systemnähere variante gewällt. (nen bisschen win-api ist net soo schwer, wie man denkt).


    Mir fällt übrigens ggerade etwas ein. Du könntest (is die Hardcore Variante) auf den Speicher des Programmes b die Werte von a schreiben. Du sucht nur die Speicheradd und manipulierst sie dann.



    Re: C-Programm aus C-Programm starten ???

    DrPhil_Guth - 16.12.2006, 17:03


    also diese methode ist wohl ein bisschen brutal...

    Kannst du schon C++ programmieren? Dann würd ich dir empfehlen für jedes teilprogramm eine eigene Klasse zu schreiben, und alles so zu kapseln dass du nur mehr solche schnittstellen hast, die du auch bei einem eigenständigen Programm haben würdest.
    Dann köntnest du in der haupt -cpp datei alles relativ einfach zusammenkleben.

    Falls du keinen plan hast von was ich da rede, dann könntest du deine programme in möglichst eigenständige funktionen packen (sozusagen eigene "main" funktionen) und die dann von deinem Hauptprogramm aus starten lassen.

    Und zum Thema void main(void)
    Das gibt es nicht, und das hat es auch nie gegeben. ich weiß nicht wer dieses gerücht in die welt gesetzt hat, aber eine main funktion hat immer den Rückgabewert int. das void in klammern lass ich mir noch einreden, wenn du keine parameter zu übergeben brauchst, aber es ginge halt auch nur mit leeren klammern.



    Re: C-Programm aus C-Programm starten ???

    exbs - 17.12.2006, 03:11


    Zitat: also diese methode ist wohl ein bisschen brutal... is ja auch die hardcore variante.

    nur ließ er sich nicht davon abbringen, alles über die cmd zu machn, statt es über einzelne funktioonen zu bewerkstelliegen.



    Mit folgendem Code, können Sie den Beitrag ganz bequem auf ihrer Homepage verlinken



    Weitere Beiträge aus dem Forum Tutorials.at

    User gesucht Programmiersprache C - gepostet von geek.90 am Samstag 19.05.2007
    DROS - gepostet von vpascal am Donnerstag 03.05.2007
    Feststellen, ob taste gedrückt - gepostet von Moritz am Dienstag 16.10.2007
    Hello World - gepostet von icewulf24 am Mittwoch 03.10.2007
    Anstatt goto labelA; !? - gepostet von Mr_A_ am Mittwoch 18.04.2007
    Blender-Problem - gepostet von toby-man am Samstag 06.10.2007
    Pascal - gepostet von Kakashi am Donnerstag 22.02.2007
    <iostream.h> mit <conio.h>, geht nicht ? - gepostet von EndSub am Montag 05.06.2006



    Ähnliche Beiträge wie "C-Programm aus C-Programm starten ???"

    Bilder aus dem Urlaub - OzzKaa (Montag 05.03.2007)
    753 rom kroch aus dem ei - donald (Montag 21.08.2006)
    Aus dem All - r3cord (Sonntag 02.04.2006)
    grüße aus berlin - thedoji (Montag 14.05.2007)
    Aus diesen Gründen kann ich gekickt werden !!! - Toffy (Sonntag 17.07.2005)
    Wer kommt in Mohrenkönig! Neues Programm!! - dussi (Montag 16.04.2007)
    So sehen Sieger aus ! - attams (Sonntag 24.06.2007)
    Aus dem Gefecht genommen :( - Thomy (Donnerstag 07.06.2007)
    Die Ärzte aus Debil mach Devil - Flo (Dienstag 25.10.2005)
    Neues aus Kneheim - Henry95 (Samstag 30.06.2007)