Aracılığıyla paylaş


Yönetilmeyen DLL İşlevlerini Kullanma

Platform çağırma, yönetilen kodun Windows API'sindekiler gibi dinamik bağlantı kitaplıklarında (DLL' ler) uygulanan yönetilmeyen işlevleri çağırmasını sağlayan bir hizmettir. Dışarı aktarılan bir işlevi bulup çağırır ve bağımsız değişkenlerini (tamsayılar, dizeler, diziler, yapılar vb.) gerektiğinde birlikte çalışma sınırında sıralar.

Bu bölümde yönetilmeyen DLL işlevlerini kullanmayla ilişkili görevler tanıtılır ve platform çağrısı hakkında daha fazla bilgi sağlanır. Aşağıdaki görevlere ek olarak, genel konular ve ek bilgi ve örnekler sağlayan bir bağlantı vardır.

Dışarı aktarılan DLL işlevlerini kullanmak için

  1. DLL'lerdeki işlevleri tanımlama.

    En az düzeyde, işlevin adını ve onu içeren DLL'nin adını belirtmeniz gerekir.

  2. DLL işlevlerini barındıracak bir sınıf oluşturun.

    Mevcut bir sınıfı kullanabilir, yönetilmeyen her işlev için ayrı bir sınıf oluşturabilir veya ilgili yönetilmeyen işlevler kümesini içeren bir sınıf oluşturabilirsiniz.

  3. Yönetilen kodda prototipler oluşturun.

    [Visual Basic] Declare deyimini Function ve Lib anahtar sözcükleriyle kullanın. Bazı nadir durumlarda, DllImportAttribute anahtar sözcükleriyle kullanabilirsiniz. Bu durumlar bu bölümün ilerleyen bölümlerinde açıklanmıştır.

    [C#] DLL ve işlevi tanımlamak için DllImportAttribute öğesini kullanın. Metodu static ve extern değiştiricileriyle işaretleyin.

    [C++] DLL'yi ve işlevi tanımlamak için öğesini DllImportAttribute kullanın. Sarmalayıcı yöntemini veya işlevini extern "C" ile işaretleyin.

  4. DLL işlevini çağır.

    Yönetilen sınıfınızdaki yöntemi, diğer yönetilen yöntemler gibi çağırın. Yapıların aktarımı ve geri çağırma fonksiyonlarının gerçekleştirilmesi özel durumlardır.

Platform çağrısı ile kullanılacak .NET tabanlı bildirimlerin nasıl oluşturulacağını gösteren örnekler için Platform Çağırma ile Verileri Dönüştürme bölümüne bakın.

Platform çağırma yöntemine daha yakından bakış

Platform çağrısı, dışarı aktarılan işlevleri bulmak ve bağımsız değişkenlerini çalışma zamanında sıralamak için meta verileri kullanır. Aşağıdaki çizim bu süreci göstermektedir.

Platform çağırma çağrısını gösteren diyagram.

Platform çağrısı yönetilmeyen bir işlevi çağırdığında aşağıdaki eylem dizisini gerçekleştirir:

  1. İşlevi içeren DLL'yi bulur.

  2. DLL'yi belleğe yükler.

  3. İşlevin bellekteki adresini bulur ve bağımsız değişkenlerini yığına göndererek verileri gerektiği gibi sıralar.

    Uyarı

    DLL'yi bulma ve yükleme ve işlevin adresini bellekte bulma yalnızca işleve yapılan ilk çağrıda gerçekleşir.

  4. Denetimi yönetilmeyen işleve aktarır.

Platform çağrısı, yönetilmeyen fonksiyon tarafından oluşturulan hata durumlarını yönetilen çağırıcıya iletir.

Ayrıca bakınız