Šis straipsnis yra veidrodinis mašininio vertimo straipsnis, spauskite čia norėdami pereiti prie originalaus straipsnio.

Rodinys: 12415|Atsakyti: 1

[C] C++ Lib ir DLL nuorodų metodų santrauka

[Kopijuoti nuorodą]
Paskelbta 2019-07-02 17:06:54 | | |
1. Kas yra statinio ryšio biblioteka LIB ir kas yra dinaminių nuorodų bibliotekos DLL?     
Tiek statinių, tiek dinaminių nuorodų bibliotekos dalijasi kodu dvejetainiu formatu



2. Skirtumas tarp statinių nuorodų bibliotekos LIB ir dinaminių nuorodų bibliotekos DLL
Jei naudojate statiškai susietą biblioteką, visos lib instrukcijos yra tiesiogiai įtrauktos į gautą EXE failą. Dinaminių dinaminių saitų biblioteka neprivalo būti įtraukta į galutinį EXE failą, kurį galima "dinamiškai" nurodyti ir iškrauti, kai vykdomas EXE failas. Kitas skirtumas yra tas, kad statinių nuorodų bibliotekoje nebegali būti kitų dinaminių ar statinių saitų bibliotekų, o dinaminių nuorodų bibliotekoje gali būti kitų dinaminių arba statinių saitų bibliotekų.



3. Statinių nuorodų bibliotekos iškvietimo metodas:
Išgyvenkime, kad sugeneruotume lib failą:

VS2017--> Sukurkite naują projektą-->windows desktop--> statinę biblioteką, projekto pavadinimas yra Libtest



Naujas functem.h ir functem.cpp

functem.h:

#pragma vieną kartą
#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 funkcija (int a, int b)
{
        grąžinti a + b;
}
Tada sugeneruokite projektą, o derinimo kataloge bus du failai – Libtest.lib ir Libtest.pdb

Skambinant reikia atlikti tris veiksmus:

1. Nukopijuokite Libtest.lib ir functem.h į skambinančiojo katalogą; kaip parodyta paveikslėlyje žemiau:



2. Pridėkite #include "functem.h" virš skambinančio cpp failo

3. Pridėkite #pragma komentarą (lib, "Libtest.lib") virš skambinančio cpp failo



Kaip parodyta aukščiau esančiame paveikslėlyje, skambutis buvo sėkmingas.



4. Dinaminių nuorodų bibliotekos iškvietimo metodas:
Sukurkite naują projektą - > dinaminių nuorodų biblioteką su projekto pavadinimu Dlltest

Sukurkite naują Dlltest.h:

#pragma vieną kartą
#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)
{
        grąža x + y;
}
Sugeneruokite projektą, derinimo kataloge yra:



Skambinimo procesas:

1. Nukopijuokite Dlltest.dll, Dlltest.lib ir Dlltest.h ir nukopijuokite juos į skambinančiojo katalogą; kaip parodyta paveikslėlyje žemiau:



PS: Čia iš tikrųjų Dlltest.lib naudojamas tik kompiliuojant kompiliatoriaus nuorodą, todėl sugeneravus programą negalima įtraukti lib failo, tik dll failo, o tikrasis naudojimas iš tikrųjų yra dll failas. Trumpai tariant, visus tris failus reikia nukopijuoti, tačiau .h ir .lib naudojami nuorodoms kompiliuoti, ir tik .dll reikia įdėti į galutinį sugeneruotą katalogą.

2. Pridėkite #include "Dlltest.h" virš vadinamo cpp failo

3. Pridėkite #pragma komentarą (lib, "Dlltest.lib") virš skambinančio cpp failo



Skambutis sėkmingas!
---------------------
Autorius: Paukštis
Šaltinis: CSDN
Originalas: https://blog.csdn.net/wcc27857285/article/details/84615891
Autorių teisių pranešimas: Šis straipsnis yra originalus straipsnis Bloggers, prašome pridėti dienoraščio įrašo nuorodą perspausdinti!





Ankstesnis:1. Sukurkite naujausią kursinę programą
Kitą:MFC LPSTR tipo rašymas
Paskelbta 2023-12-16 13:10:26 |
Raginimas:Autoriai uždrausti arba pašalintas turinys automatiškai blokuojamas
Atsakomybės apribojimas:
Visa programinė įranga, programavimo medžiaga ar straipsniai, kuriuos skelbia Code Farmer Network, yra skirti tik mokymosi ir mokslinių tyrimų tikslams; Aukščiau nurodytas turinys negali būti naudojamas komerciniais ar neteisėtais tikslais, priešingu atveju vartotojai prisiima visas pasekmes. Šioje svetainėje pateikiama informacija gaunama iš interneto, o ginčai dėl autorių teisių neturi nieko bendra su šia svetaine. Turite visiškai ištrinti aukščiau pateiktą turinį iš savo kompiuterio per 24 valandas nuo atsisiuntimo. Jei jums patinka programa, palaikykite autentišką programinę įrangą, įsigykite registraciją ir gaukite geresnes autentiškas paslaugas. Jei yra kokių nors pažeidimų, susisiekite su mumis el. paštu.

Mail To:help@itsvse.com