defcfun cannot find foreign function in library

Liam Healy lnp at healy.washington.dc.us
Tue Jun 25 12:38:38 UTC 2013


On Tue, Jun 25, 2013 at 4:22 AM, Luís Oliveira <loliveira at common-lisp.net>wrote:

> Hello Mirko,
>
> On Tue, Jun 25, 2013 at 1:56 AM, Mirko Vukovic <mirko.vukovic at gmail.com>
> wrote:
> > I am trying to link to a VISA library (VISA is used to control data
> > acquisition instruments), visa32.lib compiled for Windows.  The library
> is
> > shipped with Tektronix software.
>
> I'm surprised loading it works. That sounds like a static library.
>
>
> > Using `nm' I did find:
> > 00000000 I __imp__viOpenDefaultRM at 4
> > 00000000 T _viOpenDefaultRM at 4
>
> This looks like the stdcall calling convention. (See "Name-decoration
> convention" in <
> http://msdn.microsoft.com/en-us/library/zxk0tw93(v=vs.71).aspx>.)
> Passing ":convention :stdcall" to DEFCFUN should work.
>

As a side point, I'm not sure if cffi-libffi works with stdcall. I think I
put the code in, but having nothing to test it on, I have no idea if it
works. If you have some structures-by-value functions to call, it would be
good to test it (but you'll have to do the debugging if it fails).

Liam
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.common-lisp.net/pipermail/cffi-devel/attachments/20130625/9c5123e0/attachment.html>


More information about the cffi-devel mailing list