.exe Builder
-
Und du glaubst wirklich, ein richtiger "Builder" hat eine Plain-EXE, an der er dann an verschiedensten hartkodierten Offsets Daten einfügt?
Ganz ehrlich, was du suchst nennt sich Compilerbau und ist ein sehr komplexes Thema ... Alle anderen Ansätze, die in deine Richtung gehen, sind ungeschickte, fehlerträchtige und letztlich sinnlose Workarounds.
-
árn[y]ék schrieb:
Und du glaubst wirklich, ein richtiger "Builder" hat eine Plain-EXE, an der er dann an verschiedensten hartkodierten Offsets Daten einfügt?
Weiß ich nicht, wenn es einfacher geht, ich bin ganz Ohr!
-
Professor Schlurmann schrieb:
Weiß ich nicht, wenn es einfacher geht, ich bin ganz Ohr!
Ähm mit dem dir schon gegebenen Schlagwort UpdateResource z.B.
Bzw. was hast du gegen rean Vorschlag auszusetzten und wiso versteift du dich darauf das man mit UpdateResource nur StringTables verändern kann.
Hast du schon mal in der Hilfe nach UpdateResource gesucht und geschaut was man damit alles verändern kann? sicher noch nicht!
-
Tut mir leid, aber ich versteh immer noch nicht, was mir eine String Table bringen soll, wenn ich eine .exe erzeugen will, die eigenständig etwas tut...
Wenn ich die Resource, die die MessageBox erzeugt "updaten" will, muss ich ja trotzdem irgendwie den String dort drin ersetzen. Ich versteh nicht, was da eine String Table zu suchen hat...
-
Ist das "Sub-Programm" von dir Programmiert also das du es umstellen könntest das es sich die Texte aus der Resource entnimmt? oder ist es eine Fremd EXE die du manipulieren willst?
-
Nein, die .exe ist von mir selbst erstellt.
-
Wozu soll das denn überhaupt gut sein?
Upgrade, andere Sprache oder was?Was Du bisher beschreibst kommt mir vor, als wolltest Du einen eigenen
Compiler/Linker schreiben...wNw
-
Später soll jemand mit dem "Builder" einen Pfad zu einem Bild auswählen und einen Text eingeben, dann wird eine .exe erstellt die das Bild und den Text darstellt, die man dann verschicken kann, eine Art Scherzprogramm also. Aber ich will es eben erst mal mit einem einfach Beispiel, wie einer MessageBox versuchen. Der Rest ist ja dann einfach.
-
Und was hintert dich jetzt daran dein "Subprogramm" so umzustellen das es seine Anzeige Texte bzw. die Texte/Bilder die du verändern willst sich aus der Resource läd, die du dann später Einfach und Sicher (nachdem du die Exe gespeichert hast) mit BeginUpdateResource/UpdateResource/EndUpdateResource verändern kannst?
Brauchst fertigen Copy&Paste Code?
-
Das war ja was ich versucht habe, nur eben nicht mit UpdateResource. Vielleicht sollte ich mal die Resource posten, vielleicht wird es dann etwas klarer.
/********************************************* File: D:\DOKUMENTE UND EINSTELLUNGEN\TORMENR\DESKTOP\MBOX.RC Generated by Resource Builder (2.6.2.0). *********************************************/ /* OutputExt=res */ mbox RCDATA MOVEABLE PURE LOADONCALL DISCARDABLE LANGUAGE LANG_NEUTRAL, 0 BEGIN '4D 5A 90 00 03 00 00 00 04 00 00 00 FF FF 00 00 ' 'B8 00 00 00 00 00 00 00 40 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 B0 00 00 00 ' '0E 1F BA 0E 00 B4 09 CD 21 B8 01 4C CD 21 54 68 ' '69 73 20 70 72 6F 67 72 61 6D 20 63 61 6E 6E 6F ' '74 20 62 65 20 72 75 6E 20 69 6E 20 44 4F 53 20 ' '6D 6F 64 65 2E 0D 0D 0A 24 00 00 00 00 00 00 00 ' '5D 5C 6D C1 19 3D 03 92 19 3D 03 92 19 3D 03 92 ' '97 22 10 92 1E 3D 03 92 E5 1D 11 92 18 3D 03 92 ' '52 69 63 68 19 3D 03 92 00 00 00 00 00 00 00 00 ' '50 45 00 00 4C 01 03 00 C9 B1 B5 46 00 00 00 00 ' '00 00 00 00 E0 00 0F 01 0B 01 05 0C 00 02 00 00 ' '00 04 00 00 00 00 00 00 00 10 00 00 00 10 00 00 ' '00 20 00 00 00 00 40 00 00 10 00 00 00 02 00 00 ' '04 00 00 00 04 00 00 00 04 00 00 00 00 00 00 00 ' '00 40 00 00 00 04 00 00 CD E3 00 00 02 00 00 00 ' '00 00 10 00 00 10 00 00 00 00 10 00 00 10 00 00 ' '00 00 00 00 10 00 00 00 00 00 00 00 00 00 00 00 ' '10 20 00 00 3C 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 20 00 00 10 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 2E 74 65 78 74 00 00 00 ' '26 00 00 00 00 10 00 00 00 02 00 00 00 04 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 20 00 00 60 ' '2E 72 64 61 74 61 00 00 92 00 00 00 00 20 00 00 ' '00 02 00 00 00 06 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 40 00 00 40 2E 64 61 74 61 00 00 00 ' '14 00 00 00 00 30 00 00 00 02 00 00 00 08 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 40 00 00 C0 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '6A 40 68 00 30 40 00 68 09 30 40 00 6A 00 E8 0D ' '00 00 00 6A 00 E8 00 00 00 00 FF 25 00 20 40 00 ' 'FF 25 08 20 40 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '5C 20 00 00 00 00 00 00 78 20 00 00 00 00 00 00 ' '4C 20 00 00 00 00 00 00 00 00 00 00 6A 20 00 00 ' '00 20 00 00 54 20 00 00 00 00 00 00 00 00 00 00 ' '86 20 00 00 08 20 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 5C 20 00 00 ' '00 00 00 00 78 20 00 00 00 00 00 00 80 00 45 78 ' '69 74 50 72 6F 63 65 73 73 00 6B 65 72 6E 65 6C ' '33 32 2E 64 6C 6C 00 00 9D 01 4D 65 73 73 61 67 ' '65 42 6F 78 41 00 75 73 65 72 33 32 2E 64 6C 6C ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '54 6F 6C 6C 65 42 6F 78 00 54 6F 6C 6C 65 72 54 ' '65 78 74 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' '00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ' ENDSo, an der Position, an der der Text steht, versuche ich nun den String zu ersetzen. Wenn ich mir UpdateResource in der MSDN anschaue, frage ich mich, wie ich dort festlegen soll, wo der String durch was ersetzt werden soll. Da es eben nicht irgendeine String Table ist. Wenn ich da irgendwo einen dicken Denkfehler drin habe, sagt bitte Bescheid. Oder ist der Resource Typ falsch?
Sorry wenn ich leicht undankbar erscheine, aber ich bin die letzten Tage leicht genervt. Also möcht ich mich, auch wenn's noch nicht funzt, bei euch allen für die Mühen bedanken.

-
VergissEs schrieb:
Und was hintert dich jetzt daran dein "Subprogramm" so umzustellen das es seine Anzeige Texte bzw. die Texte/Bilder die du verändern willst sich aus der Resource läd, die du dann später Einfach und Sicher (nachdem du die Exe gespeichert hast) mit BeginUpdateResource/UpdateResource/EndUpdateResource verändern kannst?
-
Okay, ich glaub ich hab verstanden, was ihr mir seit 2 Tagen versucht zu sagen:
Das erstellte Subprogramm soll die Strings aus einer Resource lesen die vom Builder verwaltet (geupdatet) wird?
Edit: Da würde sich aber ein Problem auftun-> Das Subprogramm müsste ja erst gestartet werden, damit es die Resource auslesen kann. Das ist ja irgendwie sehr unelegant.
-
Ist das jetzt ein Troll Versuch?
-
Was zur Hölle ist ein "Troll Versuch"?
Edit: http://de.wikipedia.org/wiki/Troll_(Netzkultur) ... aha
Nein das ist kein "Troll Versuch". Ich hätte eigentlich gerne eine Antwort.
-
Ja klar muß dein Subprogramm gestartet werden damit es auf seine eigenen Resourcen zugreifen kann!
Dein Builder Programm wird ja auch irgendwan mal gestartet um auf seine eigenen Resourcen zu zu greifen (in deinem Fall dein Subprogramm das es dann herrausnimmt und speichert und dann verändern soll).
Was soll daran bitteschön unelegant sein wenn es das macht was es machen soll?

-
Der Builder soll ja gestartet werden, der soll ja die .exe erzeugen, die nach den Angaben im Builder erzeugt wird. Wäre etwas blöd, wenn dann der erzeugten .exe immer eine .res Datei beiliegen würde.
-
Unsinn; wie kommst du auf die Idee, du müsstest eine .res beilegen?
.rc -> Textdatei, die Informationen über die verwendeten Ressourcen enthält.
.res -> Kompilierte Resourcendatei, die direkt in das Programm mit eingelinkt wird.Im Übrigen ist es absolut nicht unelegant, Daten in Dateien auszulagern (daher kommt auch die Bezeichnung: Daten -> Datei)
Eine einzige Datei ist nur handlicher, aber nicht eleganter. Eher im Gegenteil ...
-
Irgendetwas muss aber beigelegt werden, was mir an dieser Lösung eben nicht gefällt. Das mag ja in manchen Fällen sinnvoll und praktisch sein, in diesem Fall aber nicht.
-
Was willst du den beilegen? das ist doch schon alles in der EXE!
-
Aber die Subexe muss sich doch beim Start die Informationen aus der String Table holen. Und die muss ja dann wohl beigelegt werden.