Is there any hope of using Borland Developer Studio 2006 to link in a
DLL compiled by MS Visual C++ version 6? I have a Win32 DLL from a
company named Vocera. The DLL defines C++ classes that I want to
instantiate and use. It is not COM-compliant. It came with .dll,
.lib, and .h files.
I tried using Borland C++Builder 2006, but when I add the .lib file to
my project, I get the error: "[Linker Error] Error: 'C:\VMI.LIB'
contains invalid OMF record, type 0x21 (possibly COFF)".
So then I tried using the command line utilities that came with BDS.
coff2omf (v18.104.22.168 dated 11/14/05) did generate a new .lib file but I
still get errors like "[Linker Error] Error: Unresolved external
'VMI::GetVersion()' ". coff2omf displayed the following "Internal
names" but no corresponding "Imported names":
So then I tried Implib (v3.0.22) to generate a new .lib file but still
got errors like "[Linker Error] Error: Unresolved external".
So then I tried Impdef (v3.0.22) to generate a .def file to use with
implib to create a .lib file but then got the implib error:
Name: 'vmi' Ext: '.dll' Base: 0x00000000
Name: 'VMI.DLL' Ext: '.dll' Base: 0x00000000
Error vmi.def(4): Invalid character in .DEF file
The .def file contains lines like the following, and I think implib
doesn't like the '?' characters:
_??0VMI@@QAE@XZ = ??0VMI@@QAE@XZ
Finally, I tried ilink32 with the -Gi option to generate a .lib file
but got "Error: Error processing module C:\VMI.DLL".
I think Delphi requires a COM object to access this C++ class.
Do I need to use a Microsoft compiler/linker?
Thanks for your help!