Cet article est un article miroir de traduction automatique, veuillez cliquer ici pour accéder à l’article original.

Vue: 12415|Répondre: 1

[C] C++ Résumé des méthodes référenciant Lib et Dll

[Copié le lien]
Publié sur 02/07/2019 17:06:54 | | |
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 !





Précédent:1. Créer les derniers supports didactiques
Prochain:L’écriture LPSTR du MFC
Publié sur 16/12/2023 13:10:26 |
Prompt:Les auteurs sont bannis ou le contenu supprimé est automatiquement bloqué
Démenti:
Tous les logiciels, supports de programmation ou articles publiés par Code Farmer Network sont uniquement destinés à l’apprentissage et à la recherche ; Le contenu ci-dessus ne doit pas être utilisé à des fins commerciales ou illégales, sinon les utilisateurs assumeront toutes les conséquences. Les informations sur ce site proviennent d’Internet, et les litiges de droits d’auteur n’ont rien à voir avec ce site. Vous devez supprimer complètement le contenu ci-dessus de votre ordinateur dans les 24 heures suivant le téléchargement. Si vous aimez le programme, merci de soutenir un logiciel authentique, d’acheter l’immatriculation et d’obtenir de meilleurs services authentiques. En cas d’infraction, veuillez nous contacter par e-mail.

Mail To:help@itsvse.com