Tento článek je zrcadlovým článkem o strojovém překladu, klikněte zde pro přechod na původní článek.

Pohled: 12415|Odpověď: 1

[C] C++ Souhrn metod odkazujících na Lib a Dll

[Kopírovat odkaz]
Zveřejněno 02.07.2019 17:06:54 | | |
1. Co je to statická knihovna spojení LIB a co je dynamická linková knihovna DLL?     
Statická i dynamická knihovna sdílejí kód, obě v binárním formátu



2. Rozdíl mezi statickou knihovnou LIB a dynamickou knihovnou DLL
Pokud použijete staticky propojenou knihovnu, všechny instrukce v knihovně jsou přímo zahrnuty ve výsledném EXE souboru. Dynamická dynamická knihovna nemusí být zahrnuta ve finálním EXE souboru, který lze "dynamicky" odkazovat a načítat při spuštění EXE souboru. Dalším rozdílem je, že statická knihovna spojů již nemůže obsahovat jiné dynamické nebo statické knihovny spojů, zatímco dynamická knihovna může obsahovat jiné dynamické nebo statické knihovny spojů.



3. Metoda volání statické knihovny spojů:
Přežijeme a vygenerujme soubor lib:

VS2017--> Vytvořte nový projekt-->Windows desktop--> statické knihovně, název projektu je Libtest



Nový funktem.h a functem.cpp

functem.h:

#pragma jednou
#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 funkctem (int a, int b)
{
        vraťte a + b;
}
Pak vygenerujte projekt a v adresáři Debug budou dva soubory, Libtest.lib a Libtest.pdb

Při volání jsou vyžadovány tři kroky:

1. Zkopírovat Libtest.lib a functem.h do adresáře volajícího; jak je znázorněno na obrázku níže:



2. Přidejte #include "functem.h" nad volaný cpp soubor

3. Přidejte #pragma komentář (lib, "Libtest.lib") nad volající cpp soubor



Jak je znázorněno na obrázku výše, výzva byla úspěšná.



4. Metoda volání dynamické knihovny odkazů:
Vytvořte nový projekt – > dynamickou knihovnu odkazů s názvem projektu Dlltest

Vytvořte nový Dlltest.h:

#pragma jednou
#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átit x + y;
}
Vygenerujte projekt, v adresáři Debug je:



Proces hovoru:

1. Zkopírovat Dlltest.dll, Dlltest.lib a Dlltest.h a zkopírovat je do adresáře volajícího; jak je znázorněno na obrázku níže:



PS: Zde se ve skutečnosti Dlltest.lib používá pouze při kompilaci kompilátorového odkazu, takže po vygenerování programu nemůžete zahrnout soubor lib, pouze soubor dll, a skutečné využití je vlastně soubor dll. Stručně řečeno, všechny tři soubory je třeba zkopírovat, ale k kompilaci odkazů se používají .h a .lib a do finálního generovaného adresáře je třeba umístit pouze .dll.

2. Přidejte #include "Dlltest.h" nad volaný cpp soubor

3. Přidejte #pragma komentář (lib, "Dlltest.lib") nad volaný cpp soubor



Hovor je úspěšný!
---------------------
Autor: Bird
Zdroj: CSDN
Originál: https://blog.csdn.net/wcc27857285/article/details/84615891
Oznámení o autorských právech: Tento článek je originálním článkem od blogera, prosím připojte odkaz na blogový příspěvek pro přetisk!





Předchozí:1. Vytvořit nejnovější studijní materiály
Další:MFC psaní na LPSTR
Zveřejněno 16.12.2023 13:10:26 |
Pobídnout:Autoři jsou zabanováni nebo odstraněný obsah je automaticky blokován
Zřeknutí se:
Veškerý software, programovací materiály nebo články publikované organizací Code Farmer Network slouží pouze k učení a výzkumu; Výše uvedený obsah nesmí být používán pro komerční ani nelegální účely, jinak nesou všechny důsledky uživatelé. Informace na tomto webu pocházejí z internetu a spory o autorská práva s tímto webem nesouvisí. Musíte výše uvedený obsah ze svého počítače zcela smazat do 24 hodin od stažení. Pokud se vám program líbí, podporujte prosím originální software, kupte si registraci a získejte lepší skutečné služby. Pokud dojde k jakémukoli porušení, kontaktujte nás prosím e-mailem.

Mail To:help@itsvse.com