[plt-scheme] Using FFI with complex structures and input/output
parameters?
Elena Garrulo
egarrulo at gmail.com
Wed Jul 1 10:32:14 EDT 2009
2009/7/1 Eli Barzilay <eli at barzilay.org>:
> The problem is here:
>
> ;; OUT BYTE* pbRecvBuffer
> (pbRecvBuffer : (_vector o _byte cbRecvLength))
> ;; IN OUT DWORD* pcbRecvLength
> (cbRecvLength : (_ptr io _DWORD))
>
> You can't use `cbRecvLength' like that. You can use the `::' marker,
> where you put all the arguments to the wrapper explicitly at the
> front, but it still wouldn't work because the value that
> `cbRecvLength' will be bound to is a pointer.
Then, my question boils down to: with current FFI, can you use an
input/output parameter which holds the size of a buffer? For instance,
a function like:
void fill_buffer (BYTE* buffer, DWORD* buffer_size);
where buffer_size holds:
- size of buffer on input;
- size of written data on output;
has a mapping in FFI?
Thanks
More information about the plt-scheme
mailing list