LiveCode Builder: Passing buffer to foreign handler
Peter TB Brett
peter.brett at livecode.com
Mon Apr 18 03:57:58 EDT 2016
On 17/04/2016 16:14, Dar Scott wrote:
> I'm using LiveCode 8.0.0 RC 1 on the Mac. I'm tinkering with LiveCode Builder to make library extensions.
>
> I want to pass a buffer pointer to a foreign handler, in a hardware vendor supplied dynamic library Then I want to access the bytes/words in that buffer.
>
> What's the best way to do this?
>
> I thought about building up a value of type data of the right length. Is the data value contiguous? Does it stay in one place? Is the value allowed to change? I think breaking equality is OK. How do I get the pointer to the underlying first byte? (MCDataGetBytePtr()?) Or is a data ref automatically converted to pointer as needed?
>
> Or do I need to allocate my own memory? Are any <builtin> functions are available to do this? How do I get to the bytes after I make the call to the foreign function? (MCMemoryAllocate()?)
If you want a particularly horrible example, check out my wrapper for
the poll(2) system call:
https://github.com/peter-b/undergrowth/blob/master/_poll.lcb
I won't claim it's the "best way to do this" but it appears to mostly work!
> Is this noise on this list? Should this question be elsewhere?
No, it's completely on-topic.
Peter
--
Dr Peter Brett <peter.brett at livecode.com>
LiveCode Open Source Team
LiveCode 2016 Conference: https://livecode.com/edinburgh-2016/
More information about the use-livecode
mailing list