Ich entwickle eine Bibliothek, die eine oder mehrere ausführbare Hilfsprogramme im Verlauf der Geschäftstätigkeit verwendet. Meine aktuelle Implementierung erfordert, dass der Benutzer das ausführbare Hilfsprogramm auf dem System an einem bekannten Speicherort installiert hat. Damit die Bibliothek ordnungsgemäß funktioniert, muss sich die Hilfsanwendung an der richtigen Position befinden und die richtige Version sein.Entpacken einer ausführbaren Datei aus einer Bibliothek in C/C++
Ich möchte die Anforderung, dass das System in der oben beschriebenen Weise konfiguriert werden.
Gibt es eine Möglichkeit, die ausführbare Hilfsdatei in der Bibliothek so zu bündeln, dass sie zur Laufzeit entpackt, in einem temporären Verzeichnis installiert und für die Dauer eines Laufs verwendet werden kann? Am Ende des Laufs konnte die temporäre ausführbare Datei entfernt werden.
Ich habe überlegt, automatisch eine Datei zu generieren, die ein Zeichenfeld ohne Vorzeichen enthält, das den Text der ausführbaren Datei enthält. Dies würde zur Kompilierzeit als Teil des Build-Prozesses erfolgen. Zur Laufzeit wird diese Zeichenfolge in eine Datei geschrieben, wodurch die ausführbare Datei erstellt wird.
Wäre es möglich, eine solche Aufgabe auszuführen, ohne die ausführbare Datei auf eine Diskette zu schreiben (vielleicht eine Art RAM-Diskette)? Ich könnte mir vorstellen, dass bestimmte Virenscanner und andere Sicherheitssoftware gegen eine solche Operation protestieren. Gibt es andere Sorgen, um die ich mir Sorgen machen sollte?
Die Bibliothek wird in C/C++ für den plattformübergreifenden Einsatz unter Windows und Linux entwickelt.
Fügen Sie die Hilfefunktionalität in lib und fork(), aber nicht exec() ein. Nicht sicher über Windows obwohl – sigjuice