ich habe eine *.exe als resource eingebunden
-
Wie die Überschrift schon andeutet, habe ich eine *.exe Datei als Resource in mein Projekt eingebunden. Der Grund ist folgender, die *.exe liegt als freier Sourcecode mit Library vor. Jedoch habe ich aus zeitlichen Gründen im Moment nicht die Möglichkeit mich näher damit zu beschäftigen. Da die kompilierte *.exe der Library mir genau das macht was ich benötige, dachte ich mir es ist am einfachsten mein Programm nur zur Übergabe der Komanndozeilenparameter zu benutzen. Ich würde nun gerne 2 Sachen realisieren.
1. die Resource nicht auf die Festplatte dumpen und dann ausführen, also nach Möglichkeit die Resource irgendwie in den Speicher dumpen und dann ausführen.
2. wie kann ich die Ausgabe der *.exe, die normalerweise in der Konsole dargestellt wird komplett in einen Buffer umleiten? Da die *.exe die Ausgabe auch in eine Datei ermöglicht, nutzt ich dies zur Zeit und rufe dann einfach die Datei von meinem Programm aus auf und parse die Ausgabe so wie ich es gerade benötige.
Zusammenfassen nochmal: die *.exe wird auf der Festplatte erstellt, die Ausgabe der *.exe wird auf der Ferstplatte erstellt, beides würde ich gerne vermeiden.
Wer kann helfen?
-
1. Eigenen PE Loader schreiben. Erfordert gute Windows Kentnisse und nicht ganz leicht, weil du mit undokumentierten Funktionen aus Ntdll arbeiten musst.
2. stdout umleiten, siehe http://msdn.microsoft.com/en-us/library/ms682499(VS.85).aspx