Maison >développement back-end >C++ >Comment charger et appeler dynamiquement des fonctions à partir de DLL en C ?
Chargement dynamique de fonctions à partir de DLL
Le chargement dynamique de fonctions à partir de DLL (Dynamic Link Libraries) en C vous permet d'accéder à des fonctionnalités définies dans des modules au moment de l'exécution. Voici comment aborder ce problème :
1. Chargez la DLL :
<br>HINSTANCE hDLL = LoadLibrary("path/to/dll.dll");<br>
Cette étape charge la DLL en mémoire et lui renvoie un handle.
2. Obtenez le pointeur de fonction :
Pour accéder à une fonction dans la DLL, vous devez obtenir son adresse à l'aide de GetProcAddress :
<br>typedef int (__stdcall *f_funci )(); // Définir le type de pointeur de fonction<br>f_funci funci = (f_funci)GetProcAddress(hDLL, "funci");<br>
Cet exemple suppose que votre fonction est nommée "funci" et utilise la convention d'appel __stdcall.
3. Appeler la fonction :
Une fois que vous avez le pointeur de fonction, vous pouvez appeler la fonction comme n'importe quelle autre fonction :
<br>int result = funci(); <br>
4. Exporter la fonction depuis la DLL :
Dans la DLL, votre fonction doit être exportée à l'aide de __declspec(dllexport) pour la rendre accessible aux autres modules :
<br>int __declspec(dllexport) __stdcall funci() {<br> // Fonction définition<br>}<br>
Conseils supplémentaires :
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!