CodeBlanks Logo Icon CodeBlanks

lookupFunction

lookupFunction ile C fonksiyonunu Dart'a bağlamayı öğrenirsin.

lookupFunction

lookupFunction, DynamicLibrary'deki bir C fonksiyonunu Dart'a çağrılabilir hale getirir. İki tip parametre alır: NativeFunction (C tarafı) ve Dart fonksiyon tipi. Dönen değer Dart fonksiyonudur.

final topla = lib.lookupFunction<NativeTopla, DartTopla>('topla');

NativeFunction ve pointer

NativeFunction, C fonksiyon imzasını taşır (Int32, Pointer gibi tipler). lookupFunction bu imzayı Dart tarafına çevirir; böylece pointer ve bellek adresleri güvenli biçimde paylaşılır.

Uygulama getpid sembolünü ara

Önce NativeGetpid = Int32 Function() ve DartGetpid = int Function() typedef'lerini tanımla. main'de DynamicLibrary.process() ile kütüphane al, lookupFunction ile 'getpid' sembolünü ara ve 'lookup hazir' yazdır.

Başlangıç kodu

main.dart
import 'dart:ffi';

// NativeGetpid ve DartGetpid typedef'lerini tanımla (Int32/int Function())

void main() {
  // Süreç kütüphanesini al
  // lookupFunction ile getpid sembolünü ara
  // 'lookup hazir' yazdır
}

Örnek çözüm

main.dart
import 'dart:ffi';

typedef NativeGetpid = Int32 Function();
typedef DartGetpid = int Function();

void main() {
  final lib = DynamicLibrary.process();
  final getpid = lib.lookupFunction<NativeGetpid, DartGetpid>('getpid');
  print('lookup hazir');
}

Beklenen çıktı

lookup hazir

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 lookupFunction ne döndürür?

  • Widget
  • Dart fonksiyonu Doğru cevap
  • String
  • C işaretçisi

Açıklama: lookupFunction, C sembolünü Dart fonksiyonuna çevirir; dönen değeri doğrudan Dart gibi çağırabilirsin.

2 lookupFunction çağrısı

Soru
final topla = lib.____<NativeTopla, DartTopla>('topla');
Cevap
final topla = lib.lookupFunction<NativeTopla, DartTopla>('topla');

Açıklama: lookupFunction iki tip parametreyle C sembolünü Dart fonksiyonuna çevirir; lookup yalnız NativeFunction döner, getFunction ve findSymbol dart:ffi'de yoktur.

3 lookupFunction eşleşmeleri

Kavram Anlamı
lookupFunction C fonksiyonu bağlar
NativeFunction C fonksiyon tipi
pointer Bellek adresi
symbol C fonksiyon adı

Uzman seviye bölümündeki tüm dersler