I recently received a closed-source SDK consisting of a C header file (.h), a library file (.lib), and a dynamic library (.dll). They were compiled using Microsoft’s Visual C++. However, I am attempting to write my code using MinGW (GCC ported to Windows, for anyone unfamiliar with the project). It appears that ld is unable to link to the .lib file. I was wondering if it was possible to write a compatibility wrapper between the VS-compiled code and the GCC code I’m writing.
I recently received a closed-source SDK consisting of a C header file ( .h
Share
Is there an ABI mismatch or does it just not want to to link against the object format? If it’s just a linking problem, you can extract the functions you care about, disassemble them, and then reassemble them into an object your linker can handle. Even easier, maybe
objcopy(1)can speak both formats and can help you out?If you do have an ABI problem to deal with, you can do the same but also add a shim layer to thunk the ABI so that the function calls will work. How complicated that layer is and how difficult it will be to write will depend on the interfaces of the functions you’re trying to use.
Don’t get too discouraged by the comments – it’s software, so pretty much anything is possible.