Well basicaly I'm asking why the DLL has two DLL's linked that are not asked for by me. I'm not really up on this delayed loading stuff.
This was introduced in MSVC 5 or 6, I don't remember exactly.
The short answer is that if you use the linker option /DELAYLOAD:
dllname, the linker will arrange for a helper function to be called when/if a function is called from this DLL. The helper function will use LoadLibrary on the first call, and also GetProcAddress, to patch the executable to go directly to the function on future calls. A slightly smarter version of the otherwise common sequence LoadLibrary, GetProcAddress, call ..., FreeLibrary. As long as you don't try to call a function in the DLL, nothing bad will happen to you.
Another neat feature is that the helper function can be replaced, so the DLL might be extracted from the resources, fetched over the Internet or what ever you can imagine.
I have attached the default version for Pelles C (normally lives in delayimp.lib).
Pelle