1. Qu’est-ce qu’une bibliothèque de connexion statique et qu’est-ce qu’une DLL de bibliothèque de liens dynamiques ? Les bibliothèques de liaison statique et dynamique partagent du code, toutes deux au format binaire
2. La différence entre la bibliothèque de liaison statique et la DLL de bibliothèque de liens dynamiques Si vous utilisez une bibliothèque liée statiquement, toutes les instructions de la bibliothèque sont directement incluses dans le fichier EXE résultant. La bibliothèque dynamique de liaison dynamique n’a pas besoin d’être incluse dans le fichier EXE final, qui peut être référencé et déchargé « dynamiquement » lors de l’exécution du fichier EXE. Une autre différence est qu’une bibliothèque de liens statiques ne peut plus contenir d’autres bibliothèques de liens dynamiques ou statiques, tandis qu’une bibliothèque de liens dynamiques peut contenir d’autres bibliothèques de liens dynamiques ou statiques.
3. Méthode d’appel statique de la bibliothèque de liens : Survivons pour générer un fichier libéral :
VS2017--> Créer un nouveau projet ->bureau Windows--> bibliothèque statique, le nom du projet est Libtest
Nouveau functem.h et functem.cpp
functem.h:
#pragma une fois #include « stdafx.h » #ifndef _functem_H #define _functem_H int fonctem(int a, int b) ; #endif
functem.cpp:
#include « functem.h » #include « stdafx.h »
int functem(int a, int b)
{ retourner a + b ;
} Ensuite, générez le projet, et il y aura deux fichiers, Libtest.lib et Libtest.pdb, dans le répertoire Debug
Lors de l’appel, trois étapes sont requises :
1. Copiez Libtest.lib et functem.h dans le répertoire de l’appelant ; comme montré dans la figure ci-dessous :
2. Ajouter #include « functem.h » au-dessus du fichier cpp appelant
3. Ajouter #pragma commentaire (lib, « Libtest.lib ») au-dessus du fichier cpp appelant
Comme montré sur la figure ci-dessus, l’appel a été réussi.
4. Méthode d’appel de bibliothèque de liens dynamiques : Créer un nouveau projet - > bibliothèque de liens dynamiques avec le nom de projet Dlltest
Créez un nouveau Dlltest.h :
#pragma une fois #ifndef __CDLL_H__ #define __CDLL_H__ extern « C » int _declspec(dllexport) add(int x, int y) ; #endif
Dlltest.cpp:
#include « stdafx.h » #include « Dlltest.h » int add(int x, int y)
{ retourner x + y ;
} Générez le projet, dans le répertoire Debug il y a :
Processus d’appel :
1. Copiez Dlltest.dll, Dlltest.lib et Dlltest.h et copiez-les dans le répertoire de l’appelant ; comme montré dans la figure ci-dessous :
PS : Ici, en fait, Dlltest.lib n’est utilisé que lors de la compilation du lien du compilateur, donc après la génération du programme, vous ne pouvez pas inclure le fichier lib, seulement le fichier dll, et l’usage réel est en fait le fichier dll. En résumé, les trois fichiers doivent être copiés, mais .h et .lib sont utilisés pour compiler les liens, et seuls .dll doivent être placés dans le répertoire généré finalement.
2. Ajouter #include « Dlltest.h » au-dessus du fichier cpp appelé
3. Ajouter #pragma commentaire (lib, « Dlltest.lib ») au-dessus du fichier cpp appelant
L’appel est réussi ! --------------------- Auteur : Bird Source : CSDN Original : https://blog.csdn.net/wcc27857285/article/details/84615891 Avis de droits d’auteur : Cet article est un article original du blogueur, veuillez joindre le lien de l’article de blog pour la réimpression !
|