(rontolisp) docs
← 関数

fli パッケージの関数

fli パッケージは、LispWorks 8.1 の外部言語インターフェースのうち、objc と並んで Objective-C マニュアルの例が使う部分です。メソッドが参照渡しで埋める外部オブジェクト、Objective-C が返すポインタ、fli:define-foreign-function を持ちます。macOS 専用で、Common Lisp の一部ではありません。外部ポインタはアドレスとそれが指す FLI 型の組で、メモリはどのターゲットでもプロセスのヒープです。マクロ fli:with-dynamic-foreign-objects は本体の実行中だけ外部オブジェクトを束縛します。macOS GUI ガイドを参照してください。

関数例結果
fli:allocate-foreign-object(fli:allocate-foreign-object :type :int)ゼロで初期化した int を指す外部ポインタ
fli:free-foreign-object(fli:free-foreign-object p)nil (メモリを解放する)
fli:dereference(fli:dereference p)p が指すオブジェクト
fli:foreign-slot-value(fli:foreign-slot-value rect '(:size :width))構造体のスロット
fli:size-of(fli:size-of 'cocoa:ns-rect)32
fli:pointerp(fli:pointerp p)外部ポインタなら t
fli:pointer-address(fli:pointer-address p)アドレス (整数)
fli:make-pointer(fli:make-pointer :address 4096 :type :int)そのアドレスを指す外部ポインタ
fli:null-pointer-p(fli:null-pointer-p p)アドレスが 0 なら t
fli:pointer-eq(fli:pointer-eq p q)同じアドレスなら t