DLL in Exe als Resource kenne ich, aber was hat es mit Obj-Dateien aufsich? Sind Obj-Dateien leichter zu behandeln, braucht es dafür keinen komplizierten Wrapper mehr?
OBJ ist ein vorkompilierter Code (egal von welcher Programmiersprache), welcher direkt in unsere Kompilate integriert werden kann. (bissl vergleichbar mit unseren
DCU)
Beispiele sind z.B. die Funktionen von
MIDAS (MidasLib.pas),
ZLib (System.ZLib.pas oder IdZLibHeaders.pas), RegEx (System.RegularExpressionsAPI.pas > System.RegularExpressions.pas), JPEG (
Vcl.Imaging.jpeg.pas),
PNG (nicht mehr) oder
Delayed-Loading (SysInit.pas).
Die
DLL in den Resourcen mußt du erst draußen speichern, um sie zu laden, oder etwas böser in den
RAM laden und manuell von dort laden. (und hoffen der Virenscanner hat nix dagegen)
Theoretisch kann man nahezu jeden C++-Code als OBJ kompileren und so ins Delphi pringen.
Ich bin noch am Experimentieren, GIT so ins Delphi zu bekommen, also um optimaler damit zu arbeiten. (Beispiel ist TortoiseGit, welches teilweise die GitLib integriert hat, aber auch teilweise direkt mit der GIT.exe redet ... z.B. Krank beim Revert jede Datei mit je zwei GIT.exe-Aufrufen extrem langsam und Anderes aber intern sehr schnell)
nur so am Rande: Von welcher 7Zip.dll reden wir (siehe Anhang)?
Am Besten vom aktuellen Original?
https://7-zip.de/download.html