2015-10-12 5 views
5

Atronix Rebol 3 FFIは外部関数をラップするのにはかなりよく見えますが、それを使用して外部変数をラップすることに関する参照は見つかりません。例えばRebol 3を使用した共有変数のラッピングFFI

私はREBOLのコードでそれを使用したい

extern WINDOW *stdscr; 

として、呪い/ ncursesライブラリは、Cで定義された外部変数でstdscrを持っています。理想的には私はこれをRebolの共通の変数として使用したいと思いますが、(例えば関数呼び出しの結果として)読み取り専用アクセスも素晴らしいでしょう。

Rebol 3 FFIでは可能ですか?

私はこの習慣が有害であると考えていることは知っていますが、時には外部ライブラリがこのように書かれています。

+0

** stdscrの** /システムはバインドを行いますが、問題はまだ開いています。 –

答えて

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 
関連する問題