Rumah >pembangunan bahagian belakang >C++ >Bagaimana untuk Memuatkan dan Memanggil Fungsi Secara Dinamik daripada DLL dalam C?
Pemuatan Dinamik Fungsi daripada DLL
Memuatkan fungsi secara dinamik daripada DLL (Perpustakaan Pautan Dinamik) dalam C membolehkan anda mengakses fungsi yang ditakrifkan secara berasingan modul semasa runtime. Begini cara untuk mendekati masalah ini:
1. Muatkan DLL:
<br>HINSTANCE hDLL = LoadLibrary("path/to/dll.dll");<br>
Langkah ini memuatkan DLL ke dalam memori dan mengembalikan pemegang ke ia.
2. Dapatkan Penunjuk Fungsi:
Untuk mengakses fungsi dalam DLL, anda perlu mendapatkan alamatnya menggunakan GetProcAddress:
<br>typedef int (__stdcall *f_funci )(); // Tentukan jenis penunjuk fungsi<br>f_funci funci = (f_funci)GetProcAddress(hDLL, "funci");<br>
Contoh ini menganggap fungsi anda dinamakan "funci" dan menggunakan konvensyen panggilan __stdcall.
3. Memanggil Fungsi:
Sebaik sahaja anda mempunyai penunjuk fungsi, anda boleh memanggil fungsi seperti mana-mana fungsi lain:
<br>int result = funci(); <br>
4. Mengeksport Fungsi daripada DLL:
Dalam DLL, fungsi anda mesti dieksport menggunakan __declspec(dllexport) untuk menjadikannya boleh diakses oleh modul lain:
int __declspec(dllexport) __stdcall funci() {
// Definisi fungsi
}
Petua Tambahan:
Atas ialah kandungan terperinci Bagaimana untuk Memuatkan dan Memanggil Fungsi Secara Dinamik daripada DLL dalam C?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!