Bagikan melalui


Menggunakan PInvoke Eksplisit di C++ (Atribut DllImport)

.NET Framework menyediakan fitur Platform Invoke (atau PInvoke) eksplisit dengan Dllimport atribut untuk memungkinkan aplikasi terkelola memanggil fungsi yang tidak dikelola yang dikemas di dalam DLL. PInvoke eksplisit diperlukan untuk situasi di mana API yang tidak dikelola dikemas sebagai DLL dan kode sumber tidak tersedia. Memanggil fungsi Win32, misalnya, memerlukan PInvoke. Jika tidak, gunakan P{Invoke implisit; lihat Menggunakan Interop C++ (PInvoke Implisit) untuk informasi selengkapnya.

PInvoke bekerja dengan menggunakan DllImportAttribute. Atribut ini, yang mengambil nama DLL sebagai argumen pertamanya, ditempatkan sebelum deklarasi fungsi untuk setiap titik entri DLL yang akan digunakan. Tanda tangan fungsi harus cocok dengan nama fungsi yang diekspor oleh DLL (tetapi beberapa konversi jenis dapat dilakukan secara implisit dengan mendefinisikan DllImport deklarasi dalam hal jenis terkelola.)

Hasilnya adalah titik masuk terkelola untuk setiap fungsi DLL asli yang berisi kode transisi yang diperlukan (atau thunk) dan konversi data sederhana. Fungsi terkelola kemudian dapat memanggil ke DLL melalui titik masuk ini. Kode yang dimasukkan ke dalam modul sebagai hasil dari PInvoke sepenuhnya dikelola.

Di Bagian Ini

Baca juga

Memanggil Fungsi Asli dari Kode Terkelola