Thread overview
Linker bug - can't handle '.' in the DLL name
May 21, 2006
dickl
May 23, 2006
Walter Bright
May 23, 2006
dckl
May 21, 2006
It appears the linker does not properly reference a DLL in the executable when the DLL name contains an embedded '.'.

For example, I'm trying to convert the Intel IPP library for use with D. In the new version, the DLLS names are  in the format lib-5.1.dll. coffimplib places the name lib-5.1 in the import lib. The application links, but when the application is run, it complains that lib-5.1 is not found. Normally if a DLL is not found , the application would have said lib-5.1.dll not found.

As a side note, implib reports an error if the LIBRARY name contains an '.'
May 23, 2006
dickl wrote:
> It appears the linker does not properly reference a DLL in the executable when the DLL name contains an embedded '.'.

That's true, any special characters like space, +, ., -, etc., will fail in file names passed to the linker.
May 23, 2006
Walter Bright wrote:
> dickl wrote:
>> It appears the linker does not properly reference a DLL in the executable when the DLL name contains an embedded '.'.
> 
> That's true, any special characters like space, +, ., -, etc., will fail in file names passed to the linker.

The problems is not that the name is passed to the linker on the command line. The DLL name is in the link (import) library but the linker doesn't properly put the name in the executable for it to load. Looking at the executable, the linker puts lib-5.1 in the executable rather than lib-5.1.DLL