Ian,
The C DLL function must have been compiled with the "__stdcall" modifier,
and the function must have been exported with a DEF file. Also, since the
SetBootstraps function requires a value of nBootstraps, not a pointer, you
need the ByVal modifier in your Declare statement.
Declare Function SetBootstraps lib "mylib" (ByVal nBootstraps As Long) As
Boolean
--
Cordially,
Chip Pearson
Microsoft MVP - Excel
Pearson Software Consulting, LLC
www.cpearson.com
(email address is on the web site)
"Ian Kennedy" wrote in message
...
Hi I'm attempting to call a function in a shared library from a VBA macro
in excel. This is a typical c function:
extern "C" bool SetBootstraps(int nBootstraps)
In VBA I have it declared as:
declare function SetBootstraps lib "mylib" (nBootstraps as long) as
Boolean
When I attempt to run this via the c debugger I don't get the value passed
down to excel that I would expect. What do I have to do to pass variables
down correctly. Do I need to use CDecl in the VBA or do I need to use
pascal in the C. Which is correct.
Also am I correct in thinking that the following is correct
VBA C
Integer short
Long int
Double double
Boolean bool
Thanks
Ian