linking C library with D, creating a OpenVG D port

ddos via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Fri Apr 3 03:29:48 PDT 2015


hi!

i'm trying to run OpenVG examples in D. So far i have compiled 
ShivaVG (an implementation of OpenVG standard) in C++ and created 
a shared library. Now i'd like to link my OpenVG.lib with a D 
program.
(the library was compiled with msvc2013x86, i'd like to avoid 
switching compiler)

to link the library i added my C++ lib to my dub file,
"libs": ["OpenVG"],
dmd complains:  Error 43: Not a Valid Library File

after some googling i found out i have to convert/create my lib 
file in the appropriate format to be used with dmd, so i used 
implib to create a new lib from my dll. viewing this lib no 
exports are visible with dumpbin, dumpbin /EXPORTS OpenVG_D.lib 
also reports a warning: OpenVG_D.lib : warning LNK4048: Invalid 
format file; ignored
maybe i have to use another tool here to view the exports? but 
dumpbin can view pe and coff, dmd uses coff i think so this 
should work i guess

if i try to compile my application it now tells me about the 
obviously missing export,  Error 42: Symbol Undefined 
_vgCreateContextS



More information about the Digitalmars-d-learn mailing list