Daftar Isi:
Definisi - Apa yang dimaksud dengan Atribut DllImport?
Atribut DllImport adalah tag deklaratif yang digunakan dalam C # untuk menandai metode kelas yang didefinisikan dalam perpustakaan tautan dinamis eksternal (DLL) alih-alih dalam perakitan .NET.
Atribut DllImport digunakan pada waktu berjalan untuk memanggil fungsi yang diekspor dalam DLL eksternal yang diimplementasikan dengan kode yang tidak dikelola yang dijalankan di luar kendali runtime bahasa umum (CLR). Itu juga digunakan untuk menentukan informasi lain yang diperlukan saat memanggil fungsi seperti memanggil konvensi, jenis konversi parameter yang dilewati antara kode yang dikelola dan tidak dikelola, dll. Dengan demikian, digunakan untuk beroperasi dengan kode dalam komponen yang tidak dikelola dan warisan yang berada di Windows DLL dan ditulis dalam C atau C ++.
DllImport sangat membantu dalam situasi di mana fungsionalitas aplikasi terkelola, yang kodenya dieksekusi oleh CLR, dapat diperpanjang hanya dengan mengakses dan menggunakan kembali fungsionalitas antarmuka pemrograman aplikasi Win32 (API) dan kode yang tidak dikelola dan ditentukan pengguna lainnya yang diimplementasikan dalam DLL. Ini dapat menghemat upaya pengembangan dan memanfaatkan kode yang ada yang kuat dan teruji dengan baik tanpa menciptakan kembali roda dalam aplikasi yang dikelola. Biasanya diperlukan saat menggunakan DLL yang tidak dapat ditulis ulang tetapi memiliki kemampuan untuk dimodifikasi.
Techopedia menjelaskan Atribut DllImport
Atribut DllImport adalah pernyataan deklarasi untuk fungsi yang diekspor untuk dipanggil dari aplikasi yang dikelola. Itu tidak dapat digunakan untuk fungsi anggota, yang membutuhkan turunan kelas. Ini ditentukan pada waktu desain dalam kurung siku sebelum deklarasi metode yang diterapkan. Hal ini diperlukan untuk menggunakan string "extern" sebelum deklarasi fungsi.
Sebagai contoh, atribut DllImport dapat digunakan dalam aplikasi Windows Forms, yang merupakan aplikasi yang dikelola untuk memanggil metode komponen model objek objek (yang kodenya tidak dikelola) untuk melakukan beberapa perhitungan.
Ini dirancang untuk mengimpor DLL tradisional yang mengekspor fungsinya menggunakan mekanisme ekspor Windows DLL asli. Ini tidak dimaksudkan untuk menggunakan kode dalam kumpulan terkelola (seperti DLL), yang dapat dirujuk langsung dalam proyek aplikasi terkelola.
Atribut DllImport menggunakan InteropServices dari CLR, yang mengeksekusi panggilan dari kode yang dikelola ke kode yang tidak dikelola. Ini juga menginformasikan kepada kompiler tentang lokasi implementasi dari fungsi yang digunakan. Ketika fungsi wrapper yang tidak dikelola dengan atribut ini dalam kode terkelola disebut, CLR menempatkan dan memuat DLL yang diperlukan. Ini marshals (mengkonversi parameter sesuai spesifikasi) dan mengembalikan kode yang tidak dikelola setelah eksekusi, bersama dengan konversi parameter yang tepat.
Saat menggunakan atribut DllImport, Anda harus berhati-hati untuk menggunakan nama DLL yang benar dan fungsi yang diekspor karena kesalahan ketik dapat terjadi di tempat-tempat di mana mereka tidak dapat dengan mudah dideteksi.
