Dieser Artikel ist ein Spiegelartikel der maschinellen Übersetzung, bitte klicken Sie hier, um zum Originalartikel zu springen.

Ansehen: 12415|Antwort: 1

[C] C++ Zusammenfassung der Methoden, die auf Lib und Dll verweisen

[Link kopieren]
Veröffentlicht am 02.07.2019 17:06:54 | | |
1. Was ist eine statische Verbindungsbibliothek (LIB) und was ist eine dynamische Linkbibliothek (DLL)?     
Sowohl statische als auch dynamische Linkbibliotheken teilen Code, beide im Binärformat



2. Der Unterschied zwischen der statischen Linkbibliothek LIB und der dynamischen Linkbibliotheks-DLL
Wenn du eine statisch verknüpfte Bibliothek verwendest, sind alle Anweisungen in der Bibliothek direkt in der resultierenden EXE-Datei enthalten. Die dynamische Linksbibliothek muss nicht in der finalen EXE-Datei enthalten sein, die beim Ausführen der EXE-Datei "dynamisch" referenziert und entladen werden kann. Ein weiterer Unterschied besteht darin, dass eine statische Linkbibliothek keine anderen dynamischen oder statischen Linkbibliotheken mehr enthalten kann, während eine dynamische Linkbibliothek andere dynamische oder statische Linkbibliotheken enthalten kann.



3. Statische Linkbibliotheksaufrufmethode:
Lass uns überleben, um eine Bibliotheksdatei zu generieren:

VS2017--> Erstellen Sie ein neues Projekt – >Windows-Desktop --> statische Bibliothek, der Projektname ist Libtest



Neue functem.h und functem.cpp

functem.h:

#pragma einmal
#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 funct(int a, int b)
{
        Zurück a + b;
}
Dann generiere das Projekt, und es werden zwei Dateien, Libtest.lib und Libtest.pdb, im Debug-Verzeichnis enthalten

Beim Anrufen sind drei Schritte erforderlich:

1. Kopiere Libtest.lib und functem.h in das Verzeichnis des Aufrufers; wie in der Abbildung unten gezeigt:



2. Füge #include "functem.h" über der aufrufenden CPP-Datei hinzu

3. Füge #pragma Kommentar (Lib, "Libtest.lib") über der aufrufenden cpp-Datei hinzu



Wie in der obigen Abbildung gezeigt, war der Call erfolgreich.



4. Dynamische Linkbibliotheksaufrufmethode:
Erstelle ein neues Projekt – > dynamische Link-Bibliothek mit dem Projektnamen Dlltest

Erstelle eine neue Dlltest.h:

#pragma einmal
#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)
{
        zurück x + y;
}
Generiere das Projekt, im Debug-Verzeichnis findest du:



Anrufprozess:

1. Kopiere Dlltest.dll, Dlltest.lib und Dlltest.h und kopiere sie in das Verzeichnis des Aufrufers; wie in der Abbildung unten gezeigt:



PS: Hier wird Dlltest.lib tatsächlich nur beim Kompilieren des Compiler-Links verwendet, sodass man nach der Programmerzeugung die Lib-Datei nicht mehr einfügen kann, sondern nur die DLL-Datei, und der eigentliche Zweck ist tatsächlich die DLL-Datei. Kurz gesagt: Alle drei Dateien müssen kopiert werden, aber .h und .lib werden verwendet, um Links zu kompilieren, und nur .dll müssen im endgültig generierten Verzeichnis platziert werden.

2. Füge #include "Dlltest.h" über die aufgerufene CPP-Datei hinzu

3. Fügen Sie #pragma Kommentar (lib, "Dlltest.lib") über der aufrufenden CPP-Datei hinzu



Der Anruf ist erfolgreich!
---------------------
Autor: Bird
Quelle: CSDN
Original: https://blog.csdn.net/wcc27857285/article/details/84615891
Copyright-Hinweis: Dieser Artikel ist ein Originalartikel des Bloggers, bitte fügen Sie den Link zum Nachdruck des Blogbeitrags bei!





Vorhergehend:1. Baue die neueste Kurssoftware
Nächster:MFCs LPSTR-Schrift
Veröffentlicht am 16.12.2023 13:10:26 |
Prompt:Autoren werden gebannt oder entfernte Inhalte automatisch blockiert
Verzichtserklärung:
Alle von Code Farmer Network veröffentlichten Software, Programmiermaterialien oder Artikel dienen ausschließlich Lern- und Forschungszwecken; Die oben genannten Inhalte dürfen nicht für kommerzielle oder illegale Zwecke verwendet werden, andernfalls tragen die Nutzer alle Konsequenzen. Die Informationen auf dieser Seite stammen aus dem Internet, und Urheberrechtsstreitigkeiten haben nichts mit dieser Seite zu tun. Sie müssen die oben genannten Inhalte innerhalb von 24 Stunden nach dem Download vollständig von Ihrem Computer löschen. Wenn Ihnen das Programm gefällt, unterstützen Sie bitte echte Software, kaufen Sie die Registrierung und erhalten Sie bessere echte Dienstleistungen. Falls es eine Verletzung gibt, kontaktieren Sie uns bitte per E-Mail.

Mail To:help@itsvse.com