Ta članek je zrcalni članek strojnega prevajanja, kliknite tukaj za skok na izvirni članek.

Pogled: 12415|Odgovoriti: 1

[C] C++ Povzetek metod, ki se sklicujejo na Lib in Dll

[Kopiraj povezavo]
Objavljeno na 2. 07. 2019 17:06:54 | | |
1. Kaj je statična knjižnica povezav LIB in kaj je dinamična knjižnica povezav DLL?     
Tako statična kot dinamična knjižnica povezav si delita kodo, obe v binarni obliki



2. Razlika med statično knjižnico povezav LIB in dinamično knjižnico povezav DLL
Če uporabljate statično povezano knjižnico, so vsa navodila v knjižici neposredno vključena v končno EXE datoteko. Dinamična knjižnica dinamičnih povezav ni nujno vključena v končno EXE datoteko, ki jo je mogoče "dinamično" referencirati in odstraniti ob izvajanju EXE datoteke. Druga razlika je, da statična knjižnica povezav ne more več vsebovati drugih dinamičnih ali statičnih knjižnic povezav, medtem ko lahko knjižnica dinamičnih povezav vsebuje druge dinamične ali statične knjižnice povezav.



3. Metoda klica statične knjižnice povezav:
Preživimo in ustvarimo datoteko lib:

VS2017--> Ustvarite nov projekt-->Windows namizje--> statično knjižnico, ime projekta je Libtest



Novi functem.h in functem.cpp

functem.h:

#pragma enkrat
#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)
{
        vrni a + b;
}
Nato generiraj projekt in v mapi Debug bosta dve datoteki, Libtest.lib in Libtest.pdb

Pri klicu so potrebni trije koraki:

1. Kopirajte Libtest.lib in functem.h v imenik klicatelja; kot je prikazano na spodnji sliki:



2. Dodajte #include "functem.h" nad klicno cpp datoteko

3. Dodajte #pragma komentar (lib, "Libtest.lib") nad klicano cpp datoteko



Kot je prikazano na zgornji sliki, je bil klic uspešen.



4. Metoda klica dinamične knjižnice povezav:
Ustvarite nov projekt - > dinamično knjižnico povezav z imenom projekta Dlltest

Ustvarite nov Dlltest.h:

#pragma enkrat
#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)
{
        vrni x + y;
}
Generiraj projekt, v mapi Debug je:



Postopek klicanja:

1. Kopirajte Dlltest.dll, Dlltest.lib in Dlltest.h ter jih kopirajte v imenik klicatelja; kot je prikazano na spodnji sliki:



PS: Tukaj se Dlltest.lib dejansko uporablja samo pri prevajanju povezave do prevajalnika, tako da po generiranju programa ne moreš vključiti lib datoteke, ampak samo dll datoteko, in prava uporaba je dll datoteka. Skratka, vse tri datoteke je treba kopirati, vendar se za prevajanje povezav uporabljata .h in .lib, v končno generirano mapo pa je treba vstaviti le .dll.

2. Dodajte #include "Dlltest.h" nad klicano cpp datoteko

3. Dodajte #pragma komentar (lib, "Dlltest.lib") nad klicajočo cpp datoteko



Klic je uspešen!
---------------------
Avtor: Bird
Vir: CSDN
Izvirnik: https://blog.csdn.net/wcc27857285/article/details/84615891
Obvestilo o avtorskih pravicah: Ta članek je izvirni članek blogerja, prosimo, priložite povezavo do blog objave za ponatisnitev!





Prejšnji:1. Izdelava najnovejšega učnega gradiva
Naslednji:MFC-jevo pisanje za LPSTR
Objavljeno na 16. 12. 2023 13:10:26 |
Uren:Avtorji so prepovedani ali pa je vsebina samodejno blokirana
Disclaimer:
Vsa programska oprema, programski materiali ali članki, ki jih izdaja Code Farmer Network, so namenjeni zgolj učnim in raziskovalnim namenom; Zgornja vsebina ne sme biti uporabljena v komercialne ali nezakonite namene, sicer uporabniki nosijo vse posledice. Informacije na tej strani prihajajo z interneta, spori glede avtorskih pravic pa nimajo nobene zveze s to stranjo. Zgornjo vsebino morate popolnoma izbrisati z računalnika v 24 urah po prenosu. Če vam je program všeč, podprite pristno programsko opremo, kupite registracijo in pridobite boljše pristne storitve. Če pride do kakršne koli kršitve, nas prosimo kontaktirajte po elektronski pošti.

Mail To:help@itsvse.com