Atronix Rebol 3 FFI在包装外部函数方面看起来相当不错,但我找不到任何关于使用它包装外部变量的引用.
例如,Curses/NCurses库具有在C中定义的外部变量stdscr
extern WINDOW *stdscr;
Run Code Online (Sandbox Code Playgroud)
我想在我的Rebol代码中使用它.理想情况下,我想将它用作常见的Rebol变量,但是只读访问(例如,作为函数调用的结果)也会很棒.
Rebol 3 FFI有可能吗?
我知道这种做法可能被认为是有害的,但有时外部库是以这种方式编写的.
您可以通过commit来完成此操作。可以从此处下载预构建二进制文件(仅在开发版本中)
这是示例代码:
rebol []
ncurses: make library! %libncursesw.so
stdscr: make struct! compose/deep [
[
extern: [(ncurses) "stdscr"]
]
ptr [pointer]
]
print ["stdscr:" stdscr/ptr]
close ncurses
Run Code Online (Sandbox Code Playgroud)