Hi,
was das Hooking angeht, so kann ich leider nicht viel dazu sagen.
Allgemein unterscheiden sich die beiden Varianten vorallem im Zeitpunkt der Bindung. Da DLLs gerade entworfen wurden, um das dyn. Binden zu erlauben, kommt die dyn. Bindung dem entsprechend näher. Hier kann der Code genau dann geladen werden, wenn er benötigt wird (und danach eben auch wieder entladen). Das schont ggf. Ressourcen. Vorallem aber ermöglicht dieses Verfahren es, dass man erstmal schaut, ob eine Datei gibt, die gebunden werden kann. Das Vorhandensein von Dateien lässt sich vorab prüfen und Fehler können leicht behandelt werden. Insbesondere kann man auch unbekannte DLLs laden (bei denen die Schnittstelle, aber nicht der Name bekannt ist, z.B. Plugins).
Für die statische Bindung spricht eigentlich nur die einfachere Syntax, da der Code zum Laden (auch nicht weiter kompliziert) entfällt. Hier muss jedoch der Name der Datei schon zur Übersetzungszeit bekannt sein, wird die zugehörige
DLL nicht gefunden, löst dies immer eine Ausnahme aus.
Gruß Der Unwissende