1. Ce este o bibliotecă de conexiune statică LIB și ce este o DLL de bibliotecă de legături dinamice? Atât bibliotecile de legături statice, cât și cele dinamice împart cod, ambele în format binar
2. Diferența dintre LIB-ul bibliotecii de legături statice și DLL-ul bibliotecii de legături dinamice Dacă folosești o bibliotecă legată static, toate instrucțiunile din bibliotecă sunt incluse direct în fișierul EXE rezultat. Biblioteca dinamică de legături dinamice nu trebuie neapărat inclusă în fișierul EXE final, care poate fi referențiat "dinamic" și descărcat atunci când fișierul EXE este executat. O altă diferență este că o bibliotecă de legături statice nu mai poate conține alte biblioteci de legături dinamice sau statice, în timp ce o bibliotecă de legături dinamice poate conține alte biblioteci de legături dinamice sau statice.
3. Metoda de apel statică a bibliotecii de legături: Hai să supraviețuim pentru a genera un fișier de liberare:
VS2017--> Creează un nou proiect-->Windows desktop--> bibliotecă statică, numele proiectului este Libtest
Noile functem.h și functem.cpp
functem.h:
#pragma o dată #include "stdafx.h" #ifndef _functem_H #define _functem_H int functem(int a, int b); #endif
functem.cpp:
#include "functem.h" #include "stdafx.h"
int functem(int a, int b)
{ returnează a + b;
} Apoi generează proiectul, iar în directorul Debug vor apărea două fișiere, Libtest.lib și Libtest.pdb.
La apel, sunt necesari trei pași:
1. Copiază Libtest.lib și functem.h în directorul apelantului; așa cum se arată în figura de mai jos:
2. Adăugați #include "functem.h" deasupra fișierului cpp apelant
3. Adaugă #pragma comentariu (lib, "Libtest.lib") deasupra fișierului cpp apelant
Așa cum se vede în figura de mai sus, apelul a avut succes.
4. Metoda de apel a bibliotecii de legături dinamice: Creează un nou proiect - > o bibliotecă de linkuri dinamice cu numele proiectului Dlltest
Creează un nou Dlltest.h:
#pragma o dată #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)
{ returnează x + y;
} Generează proiectul, în directorul Debug există:
Procesul de apelare:
1. Copiază Dlltest.dll, Dlltest.lib și Dlltest.h și copieaz-le în directorul apelantului; așa cum se arată în figura de mai jos:
PS: Aici, de fapt, Dlltest.lib este folosit doar la compilarea linkului compilatorului, așa că după generarea programului, nu poți include fișierul lib, ci doar fișierul dll, iar utilizarea reală este de fapt fișierul dll. Pe scurt, toate cele trei fișiere trebuie copiate, dar .h și .lib sunt folosite pentru compilarea legăturilor, iar doar .dll trebuie plasate în directorul generat final.
2. Adaugă #include "Dlltest.h" deasupra fișierului cpp apelat
3. Adaugă #pragma comentariu (lib, "Dlltest.lib") deasupra fișierului cpp apelant
Apelul este un succes! --------------------- Autor: Bird Sursa: CSDN Original: https://blog.csdn.net/wcc27857285/article/details/84615891 Notificare de copyright: Acest articol este un articol original scris de blogger, vă rugăm să atașezați linkul postării de blog pentru reimprimare!
|