2015-10-12 9 views
5

Atronix Rebol 3 FFI sieht ziemlich gut in der Umhüllung externer Funktionen, aber ich kann keine Referenzen über das Umschließen von externen Variablen finden, die es verwenden.Umhüllen geteilter Variablen mit Rebol 3 FFI

Zum Beispiel Flüche/NCurses Bibliothek hat die externe Variable stdscr in C definiert als

extern WINDOW *stdscr; 

Ich mag es Code in meinem Rebol verwenden. Idealerweise möchte ich es als eine gemeinsame Rebol-Variable verwenden, aber auch ein schreibgeschützter Zugriff (beispielsweise als Ergebnis eines Funktionsaufrufs) wäre großartig.

Ist es mit Rebol 3 FFI möglich?

Ich weiß, dass diese Praxis als schädlich angesehen werden kann, aber manchmal werden externe Bibliotheken auf diese Weise geschrieben.

+0

In meinem bescheidenen Fall I ** stdscr gerade eingewickelt habe ** wie es in Red getan wird/System verflucht, aber das Problem ist noch offen. –

Antwort

3

Sie können dies mit der commit tun. Prebuild Binärdateien aus here (nur in Entwicklungsversionen) heruntergeladen werden

Hier ist der Beispielcode:

rebol [] 

ncurses: make library! %libncursesw.so 

stdscr: make struct! compose/deep [ 
    [ 
     extern: [(ncurses) "stdscr"] 
    ] 
    ptr [pointer] 
] 

print ["stdscr:" stdscr/ptr] 
close ncurses