Frage

Am in VC arbeiten ++ 2008 (Express), und ich möchte etwas in C schreiben, die eine "leere" exe erstellt, die ich später LoadLibrary nennen kann auf und verwenden BeginUpdateResource, UpdateResource, EndUpdateResource den Inhalt zu ändern.

Nur eine 0-Byte-Datei zu schreiben erlaubt mir nicht, es mit Loadlibrary zu öffnen, weil es nicht eine Ressource ist.

War es hilfreich?

Lösung

Sie können eine leere EXE-Datei kompilieren mit, zum Beispiel:

int main() { return 0; }

und es als Vorlage verwenden. (Oder eine leere .dll, was auch immer)

Andere Tipps

Das .EXE-Format ist ein kompliziertes Dateiformat. Es hat eine Reihe von erforderlichen Header nur seine Grundausführungseigenschaften (16 Bit, 32 Bit oder 64 Bit, und DOS / Win16 / Win32 / Win64-Modus und im Vergleich zu EXE DLL) zu beschreiben. Danach muss es für die Adressverlagerungen eine korrekte Tabelle haben. Es ist nicht trivial, und Sie haben eine gewisse Menge an Forschung in das Exe-Datei-Format tun dies richtig zu machen.

"Erstellen" eine exe ist etwas, der Compiler ist sehr gut. Warum also nicht den Compiler erstellen die ausführbare Sie wollen, und verwenden Sie die Datei (oder eine binäre Darstellung davon Inhalt ist) um zu kopieren?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top