implib and system dlls, oh my

Jason King via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Tue Jun 24 05:34:26 PDT 2014


On Tuesday, 24 June 2014 at 04:37:56 UTC, Rikki Cattermole wrote:
> On 24/06/2014 1:13 p.m., Jason King wrote:
>> This is me trying to link with Juno and getting tantalizingly 
>> close to
>> success.
>>
>> DMD home is d:\d so binaries are d:\d\dmd2\windows\bin (on 
>> path)
>> Juno is in
>> D:\dlang\Juno-Windows-Class-Library
>> D:\dlang\Juno-Windows-Class-Library\juno.lib exists
>> sc.ini is untouched
>>
>> D:\dlang\Juno-Windows-Class-Library\examples\com>dmd
>> -L+d:\dlang\Juno-Windows-Cl
>> ass-Library\juno.lib -Id:\dlang\Juno-Windows-Class-Library 
>> events.d
>> OPTLINK (R) for Win32  Release 8.00.15
>> Copyright (C) Digital Mars 1989-2013  All rights reserved.
>> http://www.digitalmars.com/ctg/optlink.html
>> d:\dlang\Juno-Windows-Class-Library\juno.lib(core)
>>  Error 42: Symbol Undefined _VarCmp at 16
>> --- errorlevel 1
>>
>
> Looks like that's a Windows API function [0].
> Get it to link with OleAut32 and it should work, if I'm correct.
>

Thanks, Rikki
There was a pragma(lib,"oleaut32.lib") in one of the source 
files, so it should have been linking.
The problem now is that the DM oleaut32.lib doesn't include a 
_VarCmp at 16.
I ran lib -l oleaut32.lib to get a list file.  No exported 
_VarCmp at 16.  There were 400-odd lines of exports so I believe lib 
-l worked.
If I run implib /s oleaut32.lib oleaut32.dll vs. a windows XP 
oleaut32.dll I get an oleaut32.lib that includes a _VarCmp (not 
_VarCmp at 16).
What's the secret sauce to creating an oleaut32.lib that's fully 
decorated?  Is there a way to get a newer oleaut32.lib into the d 
distributions.  The full dmc oleaut32.lib is also missing 
_VarCmp at 16 so no joy there either.


More information about the Digitalmars-d-learn mailing list