1. Kas ir statiskā savienojuma bibliotēka LIB un kas ir dinamisko saišu bibliotēkas DLL? Gan statisko, gan dinamisko saišu bibliotēkas koplieto kodu binārā formātā
2. Atšķirība starp statisko saišu bibliotēku LIB un dinamisko saišu bibliotēkas DLL Ja izmantojat statiski saistītu bibliotēku, visas lib instrukcijas tiek tieši iekļautas iegūtajā EXE failā. Dinamisko dinamisko saišu bibliotēka nav jāiekļauj galīgajā EXE failā, uz kuru var "dinamiski" atsaukties un izlādēt, kad tiek izpildīts EXE fails. Vēl viena atšķirība ir tāda, ka statisko saišu bibliotēkā vairs nevar būt citas dinamiskās vai statiskās saišu bibliotēkas, savukārt dinamisko saišu bibliotēkā var būt citas dinamisko vai statisko saišu bibliotēkas.
3. Statisko saišu bibliotēkas izsaukuma metode: Izdzīvosim, lai ģenerētu lib failu:
VS2017--> Izveidojiet jaunu projektu -->windows darbvirsma--> statisko bibliotēku, projekta nosaukums ir Libtest
Jauns functem.h un functem.cpp
functem.h:
#pragma vienu reizi #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)
{ atgriezt a + b;
} Pēc tam ģenerējiet projektu, un atkļūdošanas direktorijā būs divi faili - Libtest.lib un Libtest.pdb
Zvanot ir nepieciešamas trīs darbības:
1. Kopējiet Libtest.lib un functem.h zvanītāja direktorijā; kā parādīts zemāk redzamajā attēlā:
2. Pievienojiet #include "functem.h" virs izsaucamā cpp faila
3. Pievienojiet #pragma komentāru (lib, "Libtest.lib") virs izsaucamā cpp faila
Kā parādīts attēlā iepriekš, zvans ir bijis veiksmīgs.
4. Dinamisko saišu bibliotēkas izsaukuma metode: Izveidojiet jaunu projektu - > dinamisko saišu bibliotēku ar projekta nosaukumu Dlltest
Izveidojiet jaunu Dlltest.h:
#pragma vienu reizi #ifndef __CDLL_H__ #define __CDLL_H__ ārējais "C" int _declspec(dllexport) add(int x, int y); #endif
Dlltest.cpp:
#include "stdafx.h" #include "Dlltest.h" int add(int x, int y)
{ atgriešanās x + y;
} Ģenerējiet projektu, atkļūdošanas direktorijā ir:
Zvanīšanas process:
1. Kopējiet Dlltest.dll, Dlltest.lib un Dlltest.h un nokopējiet tos zvanītāja direktorijā; kā parādīts attēlā zemāk:
PS: Šeit patiesībā Dlltest.lib tiek izmantots tikai, kompilējot kompilatora saiti, tāpēc pēc programmas ģenerēšanas jūs nevarat iekļaut lib failu, tikai dll failu, un reālais lietojums faktiski ir dll fails. Īsāk sakot, visi trīs faili ir jākopē, bet .h un .lib tiek izmantoti saišu kompilēšanai, un tikai .dll ir jāievieto galīgajā ģenerētajā direktorijā.
2. Pievienojiet #include "Dlltest.h" virs izsauktā cpp faila
3. Pievienojiet #pragma komentāru (lib, "Dlltest.lib") virs izsaucamā cpp faila
Zvans ir veiksmīgs! --------------------- Autors: Putns Avots: CSDN Oriģināls: https://blog.csdn.net/wcc27857285/article/details/84615891 Paziņojums par autortiesībām: Šis raksts ir oriģināls emuāru autora raksts, lūdzu, pievienojiet emuāra ziņas saiti atkārtotai izdrukāšanai!
|