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] Function ve Lib anahtar sözcükleriyle Declare deyimini kullanın. Bazı nadir durumlarda, DllImportAttribute'u Paylaşılan İşlev anahtar sözcükleriyle kullanabilirsiniz. Bu durumlar bu bölümün ilerleyen bölümlerinde açıklanmıştır.

    [C#] DLL'yi ve işlevi tanımlamak için DllImportAttribute kullanın. yöntemini statik ve extern değiştiricileriyle işaretleyin.

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

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

    Diğer yönetilen yöntemler gibi yönetilen sınıfınızda yöntemini çağırın. Yapıları geçirme ve geri çağırma işlevlerini uygulama özel durumlardır.

oluşturmayı gösteren örnekler için. Platform çağırma ile kullanılacak NET tabanlı bildirimler, bkz . Platform Çağırma ile Verileri Sıralama.

Platform çağırmaya daha yakından bakış

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

Diagram that shows a platform invoke call.

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.

    Not

    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 işlev tarafından oluşturulan özel durumları yönetilen çağırana atar.

Ayrıca bkz.