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