CodeBlanks Logo Icon CodeBlanks

DynamicLibrary

DynamicLibrary.open ile C kütüphanesi açmayı öğrenirsin.

DynamicLibrary

DynamicLibrary.open('libmath.so'), bir C kütüphanesini belleğe yükler. Açılan kütüphane üzerinden lookupFunction ile semboller aranır. .so Linux/Android, .dylib macOS, .dll Windows uzantısıdır. Mevcut süreci açmak için DynamicLibrary.process() kullanılır.

final lib = DynamicLibrary.open('libmath.so');
// lib üzerinde sembol aramaları yapılır

Sembol arama

Kütüphane yüklendikten sonra lib.lookup<NativeFunction>('symbol') ile C sembolleri bulunur. Bir sembol, C tarafındaki bir fonksiyon veya değişken adıdır. lookupFunction sembolü Dart fonksiyonuna çevirir.

Uygulama Süreç kütüphanesini al

main'de DynamicLibrary.process() ile bir kütüphane al ve runtimeType'ını yazdır.

Başlangıç kodu

main.dart
import 'dart:ffi';

void main() {
  // Süreci DynamicLibrary ile aç ve runtimeType yazdır
}

Örnek çözüm

main.dart
import 'dart:ffi';

void main() {
  final lib = DynamicLibrary.process();
  print(lib.runtimeType);
}

Beklenen çıktı

DynamicLibrary

Soru ve cevaplar

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

1 DynamicLibrary.open ne yapar?

  • Widget oluşturur
  • Veritabanı açar
  • HTTP isteği yapar
  • C kütüphanesini belleğe yükler Doğru cevap

Açıklama: DynamicLibrary.open, bir C kütüphanesini (.so/.dylib/.dll) belleğe yükler; sembol aramaları bu nesne üzerinden yapılır.

2 DynamicLibrary.open çağrısı

Soru
final lib = ____.open('libmath.so');
Cevap
final lib = DynamicLibrary.open('libmath.so');

Açıklama: DynamicLibrary.open geçerli tek yapıcıdır; LibraryLoader, NativeLibrary ve CLibrary dart:ffi'de bulunmaz.

3 DynamicLibrary eşleşmeleri

Kavram Anlamı
DynamicLibrary Yüklenen kütüphane
open Kütüphane açma
symbol C tarafı ad
.so Linux/Android uzantısı

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