pragma, dlls, etc
Max Samukha
samukha at voliacable.com
Thu Feb 8 01:41:31 PST 2007
On Wed, 7 Feb 2007 21:24:19 +0000 (UTC), John Reimer
<terminal.node at gmail.com> wrote:
>On Wed, 07 Feb 2007 00:43:00 -0800, Kirk McDonald wrote:
>
>> 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.
>>
>
>
>I believe windows will also look in a executable path set in the PATH
>environment.
And in the Windows and Windows\system directories
More information about the Digitalmars-d-learn
mailing list