2015-10-12 10 views
5

Atronix Rebol 3 FFI wygląda całkiem nieźle w owijaniu funkcji zewnętrznych, ale nie mogę znaleźć żadnych odniesień dotyczących zawijania zmiennych zewnętrznych za jego pomocą.Zawijanie wspólnych zmiennych za pomocą Rebola 3 FFI

Na przykład biblioteka Klątwy/ncurses posiada zewnętrzną stdscr zmiennej zdefiniowanej w C jako

extern WINDOW *stdscr; 

chcę go używać w moim kodu REBOL. Idealnie chciałbym użyć go jako wspólnej zmiennej Rebol, ale dostęp tylko do odczytu (na przykład w wyniku wywołania funkcji) byłby również świetny.

Czy to możliwe z Rebol 3 FFI?

Wiem, że ta praktyka może być uznana za szkodliwą, ale czasami zewnętrzne biblioteki są tak pisane.

+0

Moim skromnym przypadku Właśnie owinięty ** stdscr ** jak to się robi w czerwony/Klątwy systemowe wiążą się, ale problem jest nadal otwarty. –

Odpowiedz

3

Możesz to zrobić z commit. Prebuild binarne można pobrać z here (tylko w wersjach rozwojowych)

Oto przykładowy kod:

rebol [] 

ncurses: make library! %libncursesw.so 

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

print ["stdscr:" stdscr/ptr] 
close ncurses 
Powiązane problemy