Tento článok je zrkadlovým článkom o strojovom preklade, kliknite sem pre prechod na pôvodný článok.

Pohľad: 12415|Odpoveď: 1

[C] C++ Súhrn metód odkazujúcich na Lib a Dll

[Kopírovať odkaz]
Zverejnené 2. 7. 2019 17:06:54 | | |
1. Čo je statická knižnica spojenia LIB a čo je dynamická knižnica prepojenia DLL?     
Statické aj dynamické knižnice zdieľajú kód, obe v binárnom formáte



2. Rozdiel medzi statickou knižnicou linkov LIB a dynamickou knižnicou linkov DLL
Ak použijete staticky prepojenú knižnicu, všetky inštrukcie v knižnici sú priamo zahrnuté vo výslednom EXE súbore. Dynamická dynamická knižnica nemusí byť zahrnutá vo finálnom EXE súbore, ktorý môže byť "dynamicky" referencovaný a odstránený pri spustení EXE súboru. Ďalším rozdielom je, že statická knižnica odkazov už nemôže obsahovať iné dynamické alebo statické knižnice prepojení, zatiaľ čo dynamická knižnica môže obsahovať iné dynamické alebo statické knižnice prepojení.



3. Metóda volania statickej knižnice spojov:
Prežijme a vygenerujme súbor lib:

VS2017--> Vytvorte nový projekt-->Windows desktop--> statickej knižnice, názov projektu je Libtest



Nové functem.h a functem.cpp

functem.h:

#pragma raz
#include "stdafx.h"
#ifndef _functem_H
#define _functem_H
int funktem(int a, int b);
#endif
functem.cpp:

#include "functem.h"
#include "stdafx.h"

int funktem(int a, int b)
{
        vráť a + b;
}
Potom vygenerujte projekt a v adresári Debug budú dva súbory, Libtest.lib a Libtest.pdb

Pri volaní sú potrebné tri kroky:

1. Skopírujte Libtest.lib a functem.h do adresára volajúceho; ako je znázornené na obrázku nižšie:



2. Pridajte #include "functem.h" nad volaný cpp súbor

3. Pridajte #pragma komentár (lib, "Libtest.lib") nad volaný cpp súbor



Ako je znázornené na obrázku vyššie, výzva bola úspešná.



4. Metóda volania dynamickej knižnice odkazov:
Vytvorte nový projekt – > dynamickú knižnicu s názvom projektu Dlltest

Vytvorte nový Dlltest.h:

#pragma raz
#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)
{
        vrátiť x + y;
}
Vygenerujte projekt, v adresári Debug sa nachádza:



Proces volania:

1. Skopírujte Dlltest.dll, Dlltest.lib a Dlltest.h a skopírujte ich do adresára volajúceho; ako je znázornené na obrázku nižšie:



PS: Tu sa v skutočnosti Dlltest.lib používa iba pri kompilácii kompilátora, takže po vygenerovaní programu nemôžete zahrnúť lib súbor, iba dll súbor, a skutočným využitím je dll súbor. Stručne povedané, všetky tri súbory je potrebné skopírovať, ale na kompiláciu odkazov sa používajú .h a .lib a do finálneho vygenerovaného adresára je potrebné umiestniť len .dll.

2. Pridajte #include "Dlltest.h" nad volaný cpp súbor

3. Pridajte #pragma komentár (lib, "Dlltest.lib") nad volajúci cpp súbor



Volanie je úspešné!
---------------------
Autor: Bird
Zdroj: CSDN
Originál: https://blog.csdn.net/wcc27857285/article/details/84615891
Upozornenie na autorské práva: Tento článok je originálny článok od blogera, prosím, pripojte odkaz na blogový príspevok na opätovné zverejnenie!





Predchádzajúci:1. Vytvoriť najnovšie študijné materiály
Budúci:Písanie na LPSTR v MFC
Zverejnené 16. 12. 2023 13:10:26 |
Okamžitý:Autori sú zakázaní alebo odstránený obsah je automaticky blokovaný
Vyhlásenie:
Všetok softvér, programovacie materiály alebo články publikované spoločnosťou Code Farmer Network slúžia len na vzdelávacie a výskumné účely; Vyššie uvedený obsah nesmie byť použitý na komerčné alebo nezákonné účely, inak nesú všetky následky používateľmi. Informácie na tejto stránke pochádzajú z internetu a spory o autorské práva s touto stránkou nesúvisia. Musíte úplne vymazať vyššie uvedený obsah zo svojho počítača do 24 hodín od stiahnutia. Ak sa vám program páči, podporte originálny softvér, zakúpte si registráciu a získajte lepšie originálne služby. Ak dôjde k akémukoľvek porušeniu, kontaktujte nás prosím e-mailom.

Mail To:help@itsvse.com