dart:ffi library Null safety

Foreign Function Interface for interoperability with the C programming language.

For further details, please see: https://dart.dev/server/c-interop

Classes

Allocator
Manages memory on the native heap.
Array<T extends NativeType>
A fixed-sized array of Ts.
Bool
Represents a native bool in C. [...]
Dart_CObject
Opaque, not exposing it's members.
DartRepresentationOf
Double
Represents a native 64 bit double in C. [...]
DynamicLibrary
A dynamically loaded native library. [...]
FfiNative<T>
Annotation to be used for marking an external function as FFI native. [...]
Float
Represents a native 32 bit float in C. [...]
Handle
Represents Dart_Handle in C. [...]
Int8
Represents a native signed 8 bit integer in C. [...]
Int16
Represents a native signed 16 bit integer in C. [...]
Int32
Represents a native signed 32 bit integer in C. [...]
Int64
Represents a native signed 64 bit integer in C. [...]
IntPtr
Represents a native pointer-sized integer in C. [...]
NativeApi
Utilities for accessing the Dart VM API from Dart code or from C code via dart_api_dl.h.
NativeFunction<T extends Function>
Represents a function type in C. [...]
NativeType
NativeType's subtypes represent a native type in C. [...]
Opaque
Opaque's subtypes represent opaque types in C. [...]
Packed
Annotation to specify on Struct subtypes to indicate that its members need to be packed. [...]
Pointer<T extends NativeType>
Represents a pointer into the native C memory. Cannot be extended.
Struct
The supertype of all FFI struct types. [...]
Uint8
Represents a native unsigned 8 bit integer in C. [...]
Uint16
Represents a native unsigned 16 bit integer in C. [...]
Uint32
Represents a native unsigned 32 bit integer in C. [...]
Uint64
Represents a native unsigned 64 bit integer in C. [...]
Union
The supertype of all FFI union types. [...]
Unsized
Void
Represents a void type in C. [...]

Extensions

AllocatorAlloc
Extension on Allocator to provide allocation with NativeType.
ArrayArray
Bounds checking indexing methods on Arrays of Array.
BoolArray
Bounds checking indexing methods on Arrays of Bool.
BoolPointer
Extension on Pointer specialized for the type argument Bool.
DoubleArray
Bounds checking indexing methods on Arrays of Double.
DoublePointer
Extension on Pointer specialized for the type argument Double.
DynamicLibraryExtension
Method which must not be invoked dynamically.
FloatArray
Bounds checking indexing methods on Arrays of Float.
FloatPointer
Extension on Pointer specialized for the type argument Float.
Int8Array
Bounds checking indexing methods on Arrays of Int8.
Int8Pointer
Extension on Pointer specialized for the type argument Int8.
Int16Array
Bounds checking indexing methods on Arrays of Int16.
Int16Pointer
Extension on Pointer specialized for the type argument Int16.
Int32Array
Bounds checking indexing methods on Arrays of Int32.
Int32Pointer
Extension on Pointer specialized for the type argument Int32.
Int64Array
Bounds checking indexing methods on Arrays of Int64.
Int64Pointer
Extension on Pointer specialized for the type argument Int64.
IntPtrArray
Bounds checking indexing methods on Arrays of IntPtr.
IntPtrPointer
Extension on Pointer specialized for the type argument IntPtr.
NativeFunctionPointer
Extension on Pointer specialized for the type argument NativeFunction.
NativePort
Extension to retrieve the native Dart_Port from a SendPort.
PointerArray
Bounds checking indexing methods on Arrays of Pointer.
PointerPointer
Extension on Pointer specialized for the type argument Pointer.
StructArray
Bounds checking indexing methods on Arrays of Struct.
StructPointer
Extension on Pointer specialized for the type argument Struct.
Uint8Array
Bounds checking indexing methods on Arrays of Uint8.
Uint8Pointer
Extension on Pointer specialized for the type argument Uint8.
Uint16Array
Bounds checking indexing methods on Arrays of Uint16.
Uint16Pointer
Extension on Pointer specialized for the type argument Uint16.
Uint32Array
Bounds checking indexing methods on Arrays of Uint32.
Uint32Pointer
Extension on Pointer specialized for the type argument Uint32.
Uint64Array
Bounds checking indexing methods on Arrays of Uint64.
Uint64Pointer
Extension on Pointer specialized for the type argument Uint64.
UnionArray
Bounds checking indexing methods on Arrays of Union.
UnionPointer
Extension on Pointer specialized for the type argument Union.

Constants

unsized → const Unsized
This NativeType does not have predefined size. [...]
const Unsized()

Properties

nullptr Pointer<Never>
Represents a pointer into the native C memory corresponding to "NULL", e.g. a pointer with address 0.
final

Functions

sizeOf<T extends NativeType>() int
Number of bytes used by native type T. [...]

Typedefs

Dart_NativeMessageHandler = Void Function(Int64, Pointer<Dart_CObject>)