10.5 Failed to reserve... error in compacted image

Loading a compacted LispWorks (32-bit) for Windows DLL might result in an error message like this:

Failed to reserve 14024705 bytes of memory (preferred address 0x20000000)
Error 487: Attempt to access invalid address.

LispWorks normally relocates its heap if the default address 0x20000000 is already in use (for example, by another DLL) but this is not possible if the DLL is compacted.

The solution is to build a non-compacted DLL:

(deliver nil "foo" 5 :dll-exports '("Foo") :compact nil)
LispWorks Delivery User Guide - 14 Mar 2008