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
_______________________________________________
fpc-pascal maillist  -  fpc-pascal@lists.freepascal.org
https://lists.freepascal.org/cgi-bin/mailman/listinfo/fpc-pascal

Reply via email to