Well, there is a lot of stuff out there. The gprolog binding reminds me
a bit of the Quintus and SICStus bindings. This is supported by the
library(qpforeign). This library accepts a similar specification and
creates C code for the wrappers. That is one. Second is that years
ago I wrote a wrapper generator for OpenGL. That was, as I recall,
based on reading the OpenGL headers. If you are interested (or
anyone else), I'll look around and put it on Github.
Finally, I'm investigating the options for a dynamic calling interface
that is around in various forms in many scripting languages. I'm not
really sure where this is heading. Just calling functions with scalar
arguments and return values is easy, but how to deal with pointers and
structures is a completely different story. So far I've been looking
at dyncall and cinvoke. The biggest issue seems obtaining type info.
cinvoke lets you dynamically build structures, but you need to know
the basic C types of the fields. Modern libraries typically hide those
details behind layers of abstractions to deal with their portability
requirements. Roughly, there seem to be two routes. One is to parse
the C code and the other seems to demand the library built with debug
info and inspect the debug info to derive the API.
If someone has pointers to other solutions worthy exploring or is
willing to help, please share.
Cheers --- Jan
> <
http://rosettacode.org/wiki/Call_a_foreign-language_function#Prolog> used
> / "C:\\MinGW\\bin",/
> / "C:\\Program Files\\swipl\\bin",/
> / "C:\\Program Files\\swipl\\lib",/
> *my only observation is there appears to be no libswipl.dll
> ? Is that OK?? I am running 7.6.3, installed an hour ago.*
>
>
> So I am at a loss as to why it is not finding the
> references?!?!?! It's been many years since I tangled with
> Windows C/Linkers, mainly being OSX/Linux based and I can't
> tell what the problem might be.
>
>
> --
> You received this message because you are subscribed to the Google
> Groups "SWI-Prolog" group.
> To unsubscribe from this group and stop receiving emails from it, send
> an email to
swi-prolog+...@googlegroups.com
> <mailto:
swi-prolog+...@googlegroups.com>.