| |
|
|
- Seite 1 - |
|
Matthias Arlt | An alle, die sich von Euch mal eingehender mit Ressourcen beschäftigt haben...
Ich verwende schon länger eigene Routinen zur Ressourcen-Bearbeitung. Programme wie Resource Hacker u.a. sind zwar sehr hilfreich, aber nicht immer sinnvoll, wenn eine Funktion bspw. nur einmal benötigt wird. Das Problem besteht eigentlich "nur" im Neuaufbau der RES-Sektion, denn beim Löschen mit UpdateResource wird eben nur die Info im Header gelöscht und ein PlaceHolder eingefügt. Die Dateigröße bleibt mithin unverändert... Und ich suche nach Abhilfe...
Gruß Matthias |
|
|
| WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia | 23.02.2016 ▲ |
|
|
|
|
« Dieser Beitrag wurde als Lösung gekennzeichnet. » |
|
Matthias Arlt | Auch dieses "Problem" hat sich nun quasi nebenbei erledigt. In all den Fällen, wo die Ressourcen-Sektion die physikalisch letzte Sektion in der Datei ist (was zu 99,9% der Fall sein sollte), ist kein vollständiges ReAlignment des Dateiinhalts erforderlich. Es reicht aus, den .rsrc-Header zu auszulesen, den Teil nach dem Rohdaten-Offset (steht bei .rsrc + 20) abzutrennen und bei Bedarf die Größe (bei .rsrc + 16) auf Null zu setzen.
Übrig bleibt ein funktionierendes (ressourcenfreies und entsprechend kleineres) "Leermodul", das nun per API einzeln oder im Pulk mit den gewünschten Ressourcen bestückt werden kann...
Gruß Matthias |
|
|
| WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia | 19.04.2016 ▲ |
|
|
|
|
|
Georg Teles | Nabend, Persönlich verwende ich stets den ResHacker um meine Runtimes zu preparieren
verstehe nicht ganz, was du meinst / suchst - verstehe ich das richtig, dass Du bei der Funktion UpdateRessource [...] genau dieses Problem hast, dass du eine Ressource aus einer EXE löschst die Dateigröße aber gleich bleibt ? |
|
|
| |
|
|
|
Matthias Arlt | Georg Teles (23.02.2016)
Nabend, Persönlich verwende ich stets den ResHacker um meine Runtimes zu preparieren
Ich ja eigentlich auch... Manchmal ist es aber 'ungünstig' nur wegen eines einzigen Funktionsaufrufs ein Drittprogramm zu involvieren...
Georg Teles (23.02.2016)
...verstehe ich das richtig, dass Du bei der Funktion UpdateRessource [...] genau dieses Problem hast, dass du eine Ressource aus einer EXE löschst die Dateigröße aber gleich bleibt ?
Ja genau, das verstehst Du richtig. Bei add, replace, modify etc. wird die Datei ohnehin größer oder bleibt gleich. Nur bei delete wird sie eben nicht kleiner, da die Address-Zuordnungen der Ressourcen sonst nicht mehr stimmen würden. Deshalb werden beim Löschen die Platzhalter eingefügt und die Dateigröße bleibt gleich. Eine Reorganisation der Ressourcen würde, soweit ich das erlesen habe, hier Abhilfe schaffen. Nur ist mir das trotz x-facher Versuche noch nicht gelungen...
Gruß Matthias |
|
|
| WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia | 23.02.2016 ▲ |
|
|
|
|
Matthias Arlt | Nachdem ich mich nun noch intensiver in die Materie eingelesen habe, kann ich die Idee vorerst mal ad acta legen. Es liefe am Ende auf ein komplettes Neuschreiben der Binary hinaus (so oder ähnlich wird das mit dem 'Resource Hacker' wohl auch gelöst...). Und steht damit vom Aufwand her in keinem Verhältnis zu dem, was ich erreichen wollte. Danke trotzdem an alle, die sich dafür die Stirn gerunzelt haben.....
Gruß Matthias |
|
|
| WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia | 25.02.2016 ▲ |
|
|
|
|
Matthias Arlt | Auch dieses "Problem" hat sich nun quasi nebenbei erledigt. In all den Fällen, wo die Ressourcen-Sektion die physikalisch letzte Sektion in der Datei ist (was zu 99,9% der Fall sein sollte), ist kein vollständiges ReAlignment des Dateiinhalts erforderlich. Es reicht aus, den .rsrc-Header zu auszulesen, den Teil nach dem Rohdaten-Offset (steht bei .rsrc + 20) abzutrennen und bei Bedarf die Größe (bei .rsrc + 16) auf Null zu setzen.
Übrig bleibt ein funktionierendes (ressourcenfreies und entsprechend kleineres) "Leermodul", das nun per API einzeln oder im Pulk mit den gewünschten Ressourcen bestückt werden kann...
Gruß Matthias |
|
|
| WinXP SP2, Win7 - XProfan 10/11/FreeProfan32 - Xpia | 19.04.2016 ▲ |
|
|
|