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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk