I finally broke down this morning and made dynamic linking "work" on Win32.
The patch (from my last 0.9.8 version, not anything in CVS) should be
attached. It hopefully will apply cleanly to HEAD. Only place I'd expect
trouble is src/runtime/win32-os.c, in the scratch() function.
Anyway, apply patch, make sure that :os-provides-dlopen is in
local-target-features.lisp-expr, build. Then, to test:
(load-shared-object "USER32") => #P"USER32"
(extern-alien "MessageBoxA" (function int int c-string c-string int))
=> #<SB-ALIEN-INTERNALS:ALIEN-VALUE ...>
(alien-funcall-stdcall * 0 "Hail Eris!" "Fnord!" 0) => 1
One major unusability down, two to go...