ffi.load
共有ライブラリをロードし、関数や変数にアクセスする
lua
ffi.load(name [, global])
説明
ffi.load
関数は、指定された動的ライブラリをロードし、そのライブラリ内の関数やシンボルを新しいCライブラリ名前空間で利用できるようにします。name
にはライブラリの名前またはパスを指定します。オプションの global
に true
を指定すると、ライブラリのシンボルがグローバル名前空間にもロードされます。
補足
name
がパスでない場合、ライブラリ名の解釈はシステムに依存します。- POSIXシステム:ドットが含まれない場合は
.so
拡張子が追加され、必要に応じてlib
接頭辞も追加されます(例:ffi.load("z")
はlibz.so
をロード)。 - Windowsシステム:ドットが含まれない場合は
.dll
拡張子が追加されます(例:ffi.load("ws2_32")
はws2_32.dll
をロード)。
- POSIXシステム:ドットが含まれない場合は
サンプルコード
lua
local ffi = require("ffi")
local mylib = ffi.load("mylib")
このコードは、mylib
というライブラリをロードし、Luaからその機能にアクセスできるようにします。
互換性
- LuaJIT
関連項目
- ffi.C
- ffi.cdef