Subject Leading Underscore on Function Names?
Author barfingdog2004
Hi Experts:

I'm trying to use the embedded server for Windows.
I'm developing on Win2K using MS Visual C++ V6.0.

The download is:
Firebird-1.5.0.4290_embed_win32.zip

I've never understood the motivation for adding a
proceeding underscore to certain function names, but
I know through macro expansion, or some other
mechanism, they are sometimes added transparently.
For instance a statement of "open(x);" might call a
function called "_open".

A problem I thought was related to not having an
import library might be caused to this underscore
issue.

The first call I make to Firebird is to
isc_dsql_execute_immediate().

I'm getting the following error, The text line
might be wrapped:

error LNK2001: unresolved external symbol _isc_dsql_execute_immediate@28

While trying to figure out why I'm having such a
problem getting Firebird to link, I've learned to use
the utility dumpbin. Among other things, this displays
the symbols exported by the DLL files.

It seems the DLL, fbclient.dll after it's been
moved into my project and renamed, has a function
called isc_dsql_execute_immediate, but not one
named _isc_dsql_execute_immediate, with a leading
underscore.

The API Guide, in the section "Using Borland C/C++",
addresses the issue, and suggests using something called
the "module definition file" to deal with this issue like
this:

IMPORTS
_isc_start_transaction = GDS32.isc_start_transaction

I don't know what a module definition file is. Is
this a Borland utility? Do I need to have something
like this for Microsoft's Visual C++ compiler?

How do I deal with this issue? I'm building my app
with the MS Visual C IDE, not the command line.

Thanks
Larry