Der Vollständigkeit halber:
Unter Windows werden DLLs, die als Importreferenzen im Programmheader des *.exe-Files aufgelistet werden, vom zum Betriebssystem gehörenden Programmlader geladen. Das ist das, was "c-hater" als "quasi-statisch" bezeichnet hat. Im Programmheader stehen die zu verwendenden DLLs und die daraus zu verwendenen Funktionen ("Prozedureinsprungspunkte" im schönen Microsoft-Deutsch). Wird so eine DLL nicht gefunden oder wird eine Funktion in der referenzierten DLLs nicht gefunden, gibt es eine allseits bekannte und verhasste Fehlermeldung.
Erst wenn alle im Programmheader aufgelisteten Referenzen aufgelöst werden können, wird der eigentliche Programmcode ausgeführt.
Mit Tools wie dem zu manchen Compilern gehörendenden "dumpbin" lassen sich die Importreferenzen auflisten, der "dependency walker" zeigt auch noch Abhängigkeiten von DLLs untereinander auf.
Die Bezeichnung "quasi-statisch", die "c-hater" verwendete, rührt daher, daß Programme, die ihre DLL-Referenzen vom Programmlader aufgelöst haben möchten, so geschrieben werden, als würden sie herkömmliche statische Libraries verwenden. Beim Linken aber werden dem Programm sogenannte "import-Libraries" untergeschoben, die dafür sorgen, daß die verwendeten Symbole als Importreferenzen im Programmheader eingetragen werden.
Der Gegenentwurf ist dynamisches Laden unter Kontrolle des bereits laufenden Programmes, das erfolgt mit der Win32-Funktion /LoadLibrary/. Zum Bestimmen von Funktionspointern dient die Win32-Funktion /GetProcAddress/.
Damit lassen sich Funktionalitäten wie "Plugins" realisieren, d.h. zur Laufzeit (und nur bei Vorhandensein) geladener Code, der ein Programm erweitern kann, aber nicht muss.
Das von Rolf beschriebene Verfahren mit ld.so entstammt in seinen Ursprüngen SunOS 4.0 (1988), und ist damit ähnlich alt wie das unter Windows verwendete Verfahren, das seine Wurzeln tief in den 16-Bit-Zeiten noch /vor/ Windows 3.x hat. SunOS war schon immer ein 32-Bit-System, und konnte daher auf mehr und leistungsfähigere Ressourcen zurückgreifen als das ursprünglich 16-bittige Windows, das bis einschließlich Version 3.0 auf 8088-Systemen wie dem IBM PC/XT laufen konnte, d.h. mit gerade mal 640 kiB RAM ... Das erklärt die unterschiedlich flexiblen Ansätze des Programmladers.