Chip Pearson wrote:
Ian,
The safest bet in to check with your compiler documentation to see exactly
how it defines "bool". In older version of MS VC, 'bool' was defined the
same size as 'int'. In version 4.2, it was changed to a single char.
Additionally, you could write a simple "Hello, World" program to display the
length of "bool" and use a compatible variable type in VBA. E.g,
long int SizeOfbool()
{
printf("Size Of 'bool' in bytes: %d", sizeof(bool));
return sizeof(bool);
}
If bool is a single byte, use the VBA Byte data type. E.g.,
Public Declare Function ReturnboolLC Lib "TestDLL.dll" () As Byte
Sub AAA()
Dim L As Long ' can be any integral variable type. VBA will convert.
L = ReturnboolLC()
Debug.Print CStr(L)
End Sub
Sorry, you have be backwards, I was asking what Excel VBA used for the
size of Boolean, I will then match my C to that.
The _stdcall calling convention is a Microsoft-specific option in C. It
isn't supported in ANSI C. Therefore, if you want to call functions in C DLL
from VB/VBA, you need to write non-ANSI C code. If you need to keep your
procedures ANSI-compatible, you'll need to write an additional DLL that
wraps your ANSI functions up in _stdcall functions and compile that DLL in
VC++. You can read more about __stdcall at
Sorry, but I'm on a Macintosh, VC++ and DLLs have nothing to do with it.
Do you know what the calling convention should be for a Mac version of
Excel VBA? CodeWarrior on the Mac dose not have __stdcall so Excel can't
be using that, what does it use.
Thanks
Ian
http://msdn.microsoft.com/library/de...___stdcall.asp