array ( 0 => 'index.php', 1 => 'PHP Manual', ), 'head' => array ( 0 => 'UTF-8', 1 => 'ru', ), 'this' => array ( 0 => 'ffi.load.php', 1 => 'FFI::load', ), 'up' => array ( 0 => 'class.ffi.php', 1 => 'FFI', ), 'prev' => array ( 0 => 'ffi.isnull.php', 1 => 'FFI::isNull', ), 'next' => array ( 0 => 'ffi.memcmp.php', 1 => 'FFI::memcmp', ), 'alternatives' => array ( ), 'source' => array ( 'lang' => 'ru', 'path' => 'reference/ffi/ffi/load.xml', ), ); $setup["toc"] = $TOC; $setup["toc_deprecated"] = $TOC_DEPRECATED; $setup["parents"] = $PARENTS; manual_setup($setup); ?>
(PHP 7 >= 7.4.0, PHP 8)
FFI::load — Загружает декларации C из заголовочного файла
Метод загружает декларации C из заголовочного файла.
Общие библиотеки, которые требуется загрузить, указывают
в определениях переменной FFI_LIB
в загруженном
заголовочном файле C.
filename
Имя заголовочного файла C.
Директивы сопроцессора С не поддерживаются. То есть
директивы #include
, #define
и макросы CPP
работать не будут, за исключением особых случаев, которые перечислим ниже.
Заголовочный файл должен содержать инструкцию #define
для переменной FFI_SCOPE
, например, #define FFI_SCOPE "MYLIB"
.
Подробне об этом рассказывает раздел «Введение в FFI».
Заголовочный файл может содержать оператор
#define
для переменной FFI_LIB
,
чтобы указать библиотеку, которую он раскрывает. Если это
системная библиотека, требуется только имя файла, например:
#define FFI_LIB "libc.so.6"
.
Если это пользовательская библиотека, требуется относительный путь,
например: #define FFI_LIB "./mylib.so"
.