Questo articolo è un articolo speculare di traduzione automatica, clicca qui per saltare all'articolo originale.

Vista: 12415|Risposta: 1

[C] Riepilogo C++ dei metodi che fanno riferimento a Lib e Dll

[Copiato link]
Pubblicato su 02/07/2019 17:06:54 | | |
1. Cos'è una libreria di connessione statica (LIB) e cos'è una DLL di libreria di collegamento dinamico?     
Sia le librerie di link statico che quelle dinamiche condividono il codice, entrambe in formato binario



2. La differenza tra la libreria di link statica LIB e la DLL della libreria di link dinamico
Se usi una libreria collegata staticamente, tutte le istruzioni nella libbrazione sono direttamente incluse nel file EXE risultante. La libreria dinamica di link dinamico non deve necessariamente essere inclusa nel file EXE finale, che può essere "dinamicamente" referenziato e scaricato quando il file EXE viene eseguito. Un'altra differenza è che una libreria di link statica non può più contenere altre librerie di link dinamiche o statiche, mentre una libreria di link dinamico può contenere altre librerie di link dinamiche o statiche.



3. Metodo di chiamata statica della libreria di link:
Sopravviviamo per generare un file lib:

VS2017--> Crea un nuovo progetto-->desktop windows--> libreria statica, il nome del progetto è Libtest



Nuovi functem.h e functem.cpp

functem.h:

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

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

Functem int(int a, int b)
{
        restituisci a + b;
}
Poi genera il progetto, e ci saranno due file, Libtest.lib e Libtest.pdb, nella cartella Debug

Durante la chiamata, sono necessari tre passaggi:

1. Copia Libtest.lib e functem.h nella directory del chiamante; come mostrato nella figura sottostante:



2. Aggiungere #include "functem.h" sopra il file cpp chiamante

3. Aggiungi #pragma commento (lib, "Libtest.lib") sopra il file cpp chiamante



Come mostrato nella figura sopra, la chiamata è stata accettata.



4. Metodo di chiamata della libreria di link dinamico:
Crea un nuovo progetto - > libreria di link dinamico con il nome del progetto Dlltest

Crea un nuovo Dlltest.h:

#pragma una volta
#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)
{
        ritorna x + y;
}
Genera il progetto, nella directory Debug c'è:



Processo di chiamata:

1. Copia Dlltest.dll, Dlltest.lib e Dlltest.h e copiali nella directory del chiamante; come mostrato nella figura sottostante:



PS: Qui, infatti, Dlltest.lib viene usato solo per compilare il link del compilatore, quindi dopo la generazione del programma non puoi includere il file lib, ma solo il file dll, e il vero utilizzo è effettivamente il file dll. In breve, tutti e tre i file devono essere copiati, ma .h e .lib vengono usati per compilare i collegamenti, e solo .dll devono essere inseriti nella directory generata finale.

2. Aggiungere #include "Dlltest.h" sopra il file cpp chiamato

3. Aggiungi #pragma commento (lib, "Dlltest.lib") sopra il file cpp chiamante



La chiamata è andata bene!
---------------------
Autore: Bird
Fonte: CSDN
Originale: https://blog.csdn.net/wcc27857285/article/details/84615891
Avviso sul copyright: Questo articolo è un articolo originale del blogger, allega il link al post del blog per la ristampa!





Precedente:1. Costruire il materiale didattico più recente
Prossimo:La scrittura tipografica LPSTR del MFC
Pubblicato su 16/12/2023 13:10:26 |
Sollecito:Gli autori vengono bannati o i contenuti rimossi vengono automaticamente bloccati
Disconoscimento:
Tutto il software, i materiali di programmazione o gli articoli pubblicati dalla Code Farmer Network sono destinati esclusivamente all'apprendimento e alla ricerca; I contenuti sopra elencati non devono essere utilizzati per scopi commerciali o illegali, altrimenti gli utenti dovranno sostenere tutte le conseguenze. Le informazioni su questo sito provengono da Internet, e le controversie sul copyright non hanno nulla a che fare con questo sito. Devi eliminare completamente i contenuti sopra elencati dal tuo computer entro 24 ore dal download. Se ti piace il programma, ti preghiamo di supportare software autentico, acquistare la registrazione e ottenere servizi autentici migliori. In caso di violazione, vi preghiamo di contattarci via email.

Mail To:help@itsvse.com