import 'dart:collection'; import 'dart:ffi'; import 'dart:io'; import 'dart:typed_data'; import "package:ffi/ffi.dart"; class LengthPointer { final Pointer ptr; final int length; LengthPointer(this.ptr, this.length); } Pointer uint8ListToPointer(Uint8List data) { final Pointer ptr = malloc(data.length); for (int i = 0; i < data.length; ++i) { ptr[i] = data[i]; } return ptr; } LengthPointer readUint8Ptr(File file) { final fileData = file.readAsBytesSync(); final data = uint8ListToPointer(fileData); return LengthPointer(data, fileData.length); }