[fpc-pascal] callback from c with varargs
Luca Olivetti
luca at ventoso.org
Sun Dec 20 13:01:55 CET 2020
El 19/12/20 a les 23:15, Jonas Maebe via fpc-pascal ha escrit:
> On 19/12/2020 22:35, Luca Olivetti via fpc-pascal wrote:
>> I'm trying to use a c library where I can define a logging plugin.
>>
>> The c prototype for the callback is
>>
>> void (*log)(void *logContext, UA_LogLevel level, UA_LogCategory
>> category, const char *msg, va_list args);
>>
>>
>> however I couldn't find a way to define a suitable callback in fpc since
>> the "array of const" construct is not allowed with cdecl without
>> external, i.e.
>
> It is indeed not possible to implement a function with C varargs in FPC.
I was afraid that's the answer :-(
as an ugly workaround, I wrote a c library that vsnprintf msg and args
to a buffer and then calls a pascal function with no varargs.
It works but, as I said, it's ugly and I'd need to provide a .a for
every platform I plan to use.
Is there a better/simpler way (apart from asking the library developers
to use a callback with no varargs)?
Bye
--
Luca
More information about the fpc-pascal
mailing list