Using a MS Visual C++ DLL in Borland C++ Builder

T

Terry

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 (v1.0.0.74 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":

??0VMI@@QAE@XZ
??4VMI@@QAEAAV0@ABV0@@Z
?GetVersion@VMI@@QAEPADXZ

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
; ??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!
Terry
 
M

mlimber

Terry said:
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 (v1.0.0.74 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":

??0VMI@@QAE@XZ
??4VMI@@QAEAAV0@ABV0@@Z
?GetVersion@VMI@@QAEPADXZ

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
; ??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!
Terry

This question is not concerned with the C++ language proper but two
particular implementations thereof. See this FAQ for what is on-topic
here and for a list of possible places to post:

http://www.parashift.com/c++-faq-lite/how-to-post.html#faq-5.9

Cheers! --M
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,954
Messages
2,570,116
Members
46,704
Latest member
BernadineF

Latest Threads

Top