Folks,
Being only a causal user of C/C++ I need a small amount of help
accessing a dll I generated with BlackBox, i.e.
DevLinker.LinkDll
QcLink.dll := QcLinkDll# ~
(QcLinkDll is just a rename for the MyDll given in the BB documentation
under DevLinker.LinkDll)
I can view QcLink.dll with MS 'Dependency Walker' and see the functions
Gcd and Lcm which are defined in the source code as:
DEFINITION QcLinkDll;
PROCEDURE Gcd (a, b: INTEGER): INTEGER;
PROCEDURE Lcm (a, b: INTEGER): INTEGER;
END QcLinkDll.
I have assumed that these translate into
int Gcd (int a, int b);
int Lcm (int a, int b);
which are to be included on the C side.
I am using MS Visual Studio for C++ and so
have assumed that I must under the Project->
Settings->Debug->Additional DLLs that
I include QcLink.dll there.
The C linker can't find _Gcd and _Lcm.
"Linking...
QcLink.obj : error LNK2001: unresolved external symbol _Lcm
QcLink.obj : error LNK2001: unresolved external symbol _Gcd
Debug/QcLink.exe : fatal error LNK1120: 2 unresolved externals
Error executing link.exe.
QcLink.exe - 3 error(s), 0 warning(s)"
Now the C linker documentation says:
"To implicitly link to a DLL, executables must obtain the following from the
provider of the DLL:
A header file (.H file) containing the declarations of the exported
functions and/or C++ classes.
An import library (.LIB files) to link with. (The linker creates the import
library when the DLL is built.)
The actual DLL (.DLL file). "
I had hoped that I only needed the .dll file so how do I generate the .lib
file?
I also do *not* wish to use 'explicit linking' where one needs to include in
the C
code:
"Call LoadLibrary ...
Call GetProcAddress ...
Call FreeLibrary when done with the DLL. ".
The reason I do not wish to do this is I am distributing BB code to a senior
level
individual who will not tolerate putting that into his code.
So, is there a way to avoid .lib and explicit linking and just use a header
file
and the .dll?
-Doug
---
Douglas G. Danforth, Ph.D. - Research Scientist
QuikCAT.com 6700 Beta Drive, Suite 200, Mayfield Village, OH 44143-2335
danforth{([at]})nowhere.xy--------------------------------------------
To unsubscribe from this mailing list, send a message containing the word "unsubscribe" to:
blackbox-request{([at]})nowhere.xyTo get a list of valid e-mail commands and instructions on their usage, send a message containing the word "help" to the above address.
Send any problem reports or questions related to this email list to the list owner at
owner-blackbox{([at]})nowhere.xy
Received on Wed Apr 04 2001 - 15:21:19 UTC