lookupFunction
- Flutter kursu
- Uzman seviye
- Ders 23/39
- 4 dk
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
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
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ı
final topla = lib.____<NativeTopla, DartTopla>('topla');
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ı |