Kompilierte EXEn und DLLs einbinden
-
So: Ich will ein Projekt erstellen, was aus vielen Exen besteht, sodass MEIN eigentliches Hauptprogramm ganz klein ist, und eigentlich nur auf ausgelagerte Stellen zugreift. Ich benutze die Console und will bereits kompilierte Programme (EXE) ausführen (ohne dass der Nutzer etwas davon merkt).
Bevor mir einer mit der FAQ kommt: von der fühle ich mich verarscht. KEINE Suche, und die Ordnung ist auch das letzte.
-
1. Du hast eine konkrete Frage vergessen.
2. Die Suche funktioniert durchaus, und du kannst auch nur die FAQ durchsuchen, wenn du dir die Listboxen mal genau ansiehst (wobei die Google-Suche imho vorzuziehen ist).
3. Um exe-Dateien auszuführen, gibt es verschiedene Varianten, z.B. CreateProcess oder ShellExecute.
4. Ist dir die Problematik des Datenaustauschs bewusst, wenn du scheinbar einen Riesenhaufen von exe-Dateien verwenden willst?
5. dll's wären vielleicht ratsamer...
-
Naums schrieb:
KEINE Suche, und die Ordnung ist auch das letzte.
http://lmgtfy.com/?q="So%3A+Ich+will+ein+Projekt+erstellen%2C+was+aus+vielen+Exen+besteht"
-
okay... konkrete Frage: Wie erstelle ich solche Exen, die ausführbare Programme enthalten, wie gebe ich denen Werte, mit denen sie arbeiten können, und in welcher Libary und unter welchem Namespace sind die befehle um die EXEn auszuführen?
bzw. wie erstelle ich DLLs.... (s. oben) was ist an den DLLs besser als zu EXEn?
NACHTRAG: Ich benutze Code::Blocks. Und bevorzuge, sollte es denn die Möglichkeit geben, die IDE benutzen... XD
-
µngbd schrieb:
Naums schrieb:
KEINE Suche, und die Ordnung ist auch das letzte.
http://lmgtfy.com/?q="So%3A+Ich+will+ein+Projekt+erstellen%2C+was+aus+vielen+Exen+besteht"merke: damit wollte ich ausdrücken, dass man die Suchleiste auch direkt auf der Seite plazieren könnte, was benutzerfreundlicher wäre.
-
[quote="Naums"]okay... konkrete Frage: Wie erstelle ich solche Exen, die ausführbare Programme enthalten
Eine exe ist ein ausführbares Programm. Du meinst wohl eher Funktionen.
Naums schrieb:
wie gebe ich denen Werte, mit denen sie arbeiten können, und in welcher Libary und unter welchem Namespace sind die befehle um die EXEn auszuführen?
Einer exe könntest du am einfachsten per Kommandozeilenparameter ein paar Werte mitgeben. Viel ist da aber sicher nicht drin. Ein Riesen-Array kannst du schlecht übergeben. Nimm lieber eine dll. In der kannst du Funktionen definieren, die du exportieren musst, damit sie von außen aufrufbar ist. Diesen Funktionen kannst du übergeben, was du willst (die gehören dann auch zu deinem Prozess, eine exe wäre halt ein eigener Prozess). Und die können auch vernünftig was zurückgeben (nicht nur über den Rückgabewert, auch by-reference). 2 Prozesse können zwar auch einen geteilten Speicherbereich nutzen, aber das ist ein anderes Thema (damit kenne ich mich auch nicht aus; keine Ahnung, was es da eventuell für Beschränkungen gibt).
Btw: Ich glaube, eine exe kann genauso Funktionen exportieren. Aber das nur so nebenbei...
Naums schrieb:
bzw. wie erstelle ich DLLs.... (s. oben) was ist an den DLLs besser als zu EXEn?
Du musst bei einem neuen Projekt einfach angeben, dass eine dll erstellt werden soll. Funktionen, die du von außen aufrufen willst, musst du exportieren (Stichwörter: __declspec(dllexport), LoadLibrary, GetProcAddress ). Aber wie genau das funktioniert, siehst du besser in der Doku und im Internet nach. Das ist zu komplex, um es mit ein, zwei Sätzen hier zu behandeln.
Ich habe eine Gegenfrage: was genau ist denn deine Intention bei dieser ganzen Geschichte? Warum genau willst du dein 'Hauptprogramm' klein halten?
-
ja okay... Intention: Also, ums genau zu sagen will ich ne mini DB schreiben (also ein Programm dazu) für den Info unterricht, NEIN wir brauchen das nicht machen, ich machs trotzdem einfach um mir vllt. noch ne 1 zu verdienen.
Das Hauptprogramm klein halten. einfach weils schon Professionell ist, wenn ich nicht nur eine EXE abgebe sondern eben mehrere EXEn bzw. DLLs. Okay.. und weils für mich einfacher ist, finde ich, wenn ich die Funktionen auslager und dann im eigentlichen Programm nurnoch aufrufe.
Ich weiß dass ich nervig bin, aber kannst du mir einen Link einer guten Doku geben? thx
-
Naums schrieb:
Das Hauptprogramm klein halten. einfach weils schon Professionell ist, wenn ich nicht nur eine EXE abgebe sondern eben mehrere EXEn bzw. DLLs.
Na das würde ich einfach mal bezweifeln...
Naums schrieb:
und weils für mich einfacher ist, finde ich, wenn ich die Funktionen auslager und dann im eigentlichen Programm nurnoch aufrufe.
Und das würde ich erst recht bezweifeln! Der einfachste Weg ist natürlich, einfach alle Funktionen in einem Programm zu halten.
Naums schrieb:
Ich weiß dass ich nervig bin, aber kannst du mir einen Link einer guten Doku geben? thx
Sorry, da kann ich dir nix bieten. Ich habe das eher in der Praxis gelernt (nachschauen in unserem Source, Kollegen fragen usw.). Vielleicht hat ja irgendein anderer tolle Links für dich. Und vielleicht kann dir ja auch Google helfen.
-
OFFTOPIC: Ich hasse Google, Ein Freund spioniert dich nicht aus!
-
Naums schrieb:
OFFTOPIC: Ich hasse Google, Ein Freund spioniert dich nicht aus!
Wen interessiert's, dann nimm halt die Suchmaschine deiner Wahl...