We need to do two steps

  1. define two types one for dart itself and one for ffi, with ffi as the bridge
typedef ChangeBackgroundFFI = ffi.Void Function(ffi.Pointer<Utf8>);
typedef ChangeBackground = void Function(ffi.Pointer<Utf8>);
  1. import dll file from outside, bridge to the dart function via ffi function, and use local function directly
static final _dylib = ffi.DynamicLibrary.open("lib/dll/bg_01.dll");
static final ChangeBackground changeBackground = _dylib.lookup<ffi.NativeFunction<ChangeBackgroundFFI>>("changeBackground").asFunction();