Loads a dynamic library and resolves the requested function definitions.
On Windows passing null is not supported.
When definitions is omitted, functions is returned as an empty object until symbols are resolved explicitly.
The returned object also implements the explicit resource management protocol, so it can be used with the using declaration. Disposing the returned object closes the library handle.
import { dlopen } from 'node:ffi';
{
using handle = dlopen('./mylib.so', {
add_i32: { arguments: ['i32', 'i32'], return: 'i32' },
});
console.log(handle.functions.add_i32(20, 22));
} // handle.lib.close() is invoked automatically here.
import { dlopen } from 'node:ffi';
const { lib, functions } = dlopen('./mylib.so', {
add_i32: { arguments: ['i32', 'i32'], return: 'i32' },
string_length: { arguments: ['pointer'], return: 'u64' },
});
console.log(functions.add_i32(20, 22));