[plt-scheme] Using FFI with complex structures and input/output parameters?
On Jul 1, Elena Garrulo wrote:
> Thank you for your corrections and suggestions. I've applied them
> and reduced again source code to help diagnosis, but the error
> message at "SCardTransmit" call is still there ("zero?: expects
> argument of type <real number>; given #<cpointer>"). I'm sending
> modified sources as attachment to avoid breaking indentation.
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.
--
((lambda (x) (x x)) (lambda (x) (x x))) Eli Barzilay:
http://barzilay.org/ Maze is Life!