[fpc-devel] DLL WIN64: Entry point not found
Luc Vigato, Sita Software
l.vigato at sitasoftware.lu
Thu Jul 19 08:17:51 CEST 2007
That's my sql with the error code from firebird.
SELECT simple('tes t !') FROM rdb$database
ISC ERROR CODE:335544343
ISC ERROR MESSAGE:
invalid request BLR at offset 79
function SIMPLE is not defined
module name or entrypoint could not be found
UDF declation is
DECLARE EXTERNAL FUNCTION SIMPLE
RETURNS CSTRING (254)
ENTRY_POINT 'Simple' MODULE_NAME 'SitaUdfLib.dll'
From: fpc-devel-bounces at lists.freepascal.org
[mailto:fpc-devel-bounces at lists.freepascal.org] On Behalf Of Dimitrios Chr.
Sent: mercredi 18 juillet 2007 19:06
To: FPC developers' list
Subject: Re: [fpc-devel] DLL WIN64: Entry point not found
O/H Vincent Snijders Ýãñáøå:
> Mark - WBIsoft.COM schreef:
>> I think the calling convention be STDCALL ?
> IIRC, that is the same on win64.
Are you sure about this ?
AFAIK, they have opposite order of arguments in stack. In cdecl caller
will clean up stack after the call (raise ESP) while in stdcall this is
job of called function. I see no reason to change this because of
32\64\128 bit architecture of CPU.
Anyway, the calling convention for a Firebird UDF is still cdecl either
for x86_64 or x86_32.
PS: Don't forget to use ib_util_malloc() from ib_util.dll to allocate
memory for the UDF result string declared as FREE_IT.
Dimitrios Chr. Ioannidis
fpc-devel maillist - fpc-devel at lists.freepascal.org
More information about the fpc-devel