pragma, dlls, etc

Kirk McDonald kirklin.mcdonald at gmail.com
Wed Feb 7 00:43:00 PST 2007


Robby wrote:
> Mike Parker wrote:
> 
>> Robby wrote:
>>
>>> I've spent the past couple of hours beating my head around this so I 
>>> thought I would see if I can get some help.
>>>
>>> Considering the following directory structure:
>>>
>>> a/
>>>   b/
>>>   compile.bat
>>>     c/
>>>       d/
>>>         my.dll
>>>       main.d
>>>
>>> compile.bat:
>>>
>>> dmd -run b/c/main.d  -I../b -I../b/c/d/
>>> pause
>>>
>>> in main.d I have
>>> pragma (lib, r"b/c/d/my.dll");
>>>
>>> and I get Not a valid library file
>>>
>>> Obviously there is, but is there something I'm missing?
>>
>>
>> You need to create an import library (my.lib) and link to that. DMD 
>> doesn't link directly to DLLs. In fact, most C and C++ compilers do 
>> not do this on Windows, either. MingW is the only one I know of that 
>> accepts DLLs on the command line in place of library archives.
> 
> 
> I've ran implib.exe against it and generated a my.lib file which I've 
> put into the same directory as my.dll, and when I use:
>  pragma (lib, r"b/c/d/my.lib");
> I get an alert box stating "This application has failed to start because 
> my.dll was not found"
> 
> Sorry, that was in my draft.. didn't make it into the post though
> 
> 

Windows expects to find the DLL in the same directory as the .exe, or in 
your Windows\system32 directory.

-- 
Kirk McDonald
Pyd: Wrapping Python with D
http://pyd.dsource.org


More information about the Digitalmars-d-learn mailing list