Nja, ich wollte mir ein Programm schreiben, welches nach dem Kompilieren die
DLL automatisch patcht.
Und vor
DLL-Main bringt mir nicht viel, da ich ja nach EXE-Main benötige (praktisch so als würde die
DLL dynamisch und nicht statisch geladen
)
Sooo, hab grad mal einige TestProjekte erstellt.
EXE und
DLL funktionieren erstmal normal:
beim Start der EXE kommt "EntryPoint is called"
und beim Aufruf der Prozedur "InitDLL is called",
also soweit alles OK.
Das Patchen geht (anscheinend) auch.
Nur dann der Test mit der geänderten
DLL:
beim Start der Exe kommt (wie erhofft) "InitDLL is called",
wonach der Tausch also funktioniert hat
blos zufrüh gefreut, denn beim Aufruf der Prozedur (welche den alten EntryPoint darstellt), knallt es
Delphi-Quellcode:
---------------------------
Benachrichtigung über Debugger-Problem
---------------------------
Im Projekt I:\Software+Hilfe\_Komponnten\himXML\DLLs\Test.exe sind zu viele auseinanderfolgende Exceptions aufgetreten: ''Zugriffsverletzung bei 0x00343700: Lesen von Adresse 0x01371e34''. Prozess wurde angehalten. Mit Einzelne Anweisung oder Start fortsetzen.
---------------------------
OK Hilfe
---------------------------
Konnte jetzt keine Infos finden, ob die Aufrufkonvention stimmt (aber das war doch ohne Parameter egal), also wird der EntryPoint wohl irgendwelche Parameter haben wollen?
[add]
ich glaub ich hab da was
http://msdn.microsoft.com/en-us/library/ms682583.aspx
mal sehn was passiert, wenn ich diese Werte zwischenspeicher und dem alten EntryPoint übergebe ...
[edit]
Anhang gelöscht (geht eh nicht)