Ten artykuł jest lustrzanym artykułem tłumaczenia maszynowego, kliknij tutaj, aby przejść do oryginalnego artykułu.

Widok: 12415|Odpowiedź: 1

[C] Podsumowanie metod C++ odwołujących się do Lib i Dll

[Skopiuj link]
Opublikowano 02.07.2019 17:06:54 | | |
1. Czym jest statyczna biblioteka połączeń LIB i czym jest dynamiczna biblioteka łączy DLL?     
Zarówno statyczne, jak i dynamiczne biblioteki łączy dzielą kod, obie w formacie binarnym



2. Różnica między statyczną biblioteką łącza LIB a dynamiczną biblioteką łącza DLL
Jeśli używasz statycznie powiązanej biblioteki, wszystkie instrukcje w pliku lib są bezpośrednio zawarte w powstałym pliku EXE. Dynamiczna biblioteka łącza dynamicznego nie musi być dołączona do ostatecznego pliku EXE, który może być "dynamicznie" odwołany i odczytywany podczas wykonywania pliku EXE. Kolejną różnicą jest to, że statyczna biblioteka łączy nie może już zawierać innych dynamicznych lub statycznych bibliotek łączy, podczas gdy dynamiczna biblioteka łączy może zawierać inne dynamiczne lub statyczne biblioteki łączy.



3. Metoda wywołania statycznej biblioteki łącza:
Przetrwajmy, aby wygenerować plik lib:

VS2017--> Stwórz nowy projekt-->Windows desktop--> statycznej bibliotece, nazwa projektu to Libtest



Nowy funktem.h i 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 Functem(int a, int b)
{
        zwróć a + b;
}
Następnie wygeneruj projekt, a w katalogu Debug znajdą się dwa pliki, Libtest.lib i Libtest.pdb

Podczas dzwonienia wymagane są trzy kroki:

1. Skopiuj Libtest.lib i functem.h do katalogu wywołującego; jak pokazano na poniższym rysunku:



2. Dodaj #include "functem.h" nad wywołującym plikiem cpp

3. Dodaj #pragma komentarz (lib, "Libtest.lib") nad wywołującym plikiem cpp



Jak pokazano na powyższym rysunku, wezwanie zakończyło się sukcesem.



4. Metoda wywołań biblioteki dynamicznych:
Stwórz nowy projekt – > dynamiczną bibliotekę linków o nazwie projektu Dlltest

Stwórz nowy 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)
{
        zwróć x + y;
}
Wygeneruj projekt, w katalogu Debug znajdziemy się:



Proces połączeń:

1. Skopiuj Dlltest.dll, Dlltest.lib i Dlltest.h i skopiuj je do katalogu wywołującego; jak pokazano na poniższym rysunku:



PS: W rzeczywistości tutaj Dlltest.lib jest używany tylko podczas kompilacji linku kompilatora, więc po wygenerowaniu programu nie można dołączyć pliku lib, tylko plik dll, a prawdziwym zastosowaniem jest plik dll. Krótko mówiąc, wszystkie trzy pliki muszą zostać skopiowane, ale do kompilacji linków używa się .h i .lib, a do końcowego wygenerowanego katalogu potrzebne są tylko .dll.

2. Dodaj #include "Dlltest.h" nad wywołanym plikiem cpp

3. Dodaj #pragma komentarz (lib, "Dlltest.lib") nad wywołującym plikiem cpp



Połączenie zakończyło się sukcesem!
---------------------
Autor: Bird
Źródło: CSDN
Oryginał: https://blog.csdn.net/wcc27857285/article/details/84615891
Informacja o prawach autorskich: Ten artykuł jest oryginalnym artykułem autorstwa blogera, prosimy o dołączenie linku do posta blogowego do ponownego druku!





Poprzedni:1. Tworzenie najnowszych materiałów dydaktycznych
Następny:Pismo na LPSTR MFC
Opublikowano 16.12.2023 13:10:26 |
Monit:Autorzy są banowani lub usuwane treści są automatycznie blokowane
Zrzeczenie się:
Całe oprogramowanie, materiały programistyczne lub artykuły publikowane przez Code Farmer Network służą wyłącznie celom edukacyjnym i badawczym; Powyższe treści nie mogą być wykorzystywane do celów komercyjnych ani nielegalnych, w przeciwnym razie użytkownicy ponoszą wszelkie konsekwencje. Informacje na tej stronie pochodzą z Internetu, a spory dotyczące praw autorskich nie mają z nią nic wspólnego. Musisz całkowicie usunąć powyższą zawartość z komputera w ciągu 24 godzin od pobrania. Jeśli spodoba Ci się program, wspieraj oryginalne oprogramowanie, kup rejestrację i korzystaj z lepszych, autentycznych usług. W przypadku naruszenia praw prosimy o kontakt mailowy.

Mail To:help@itsvse.com