DLLs in Visual C++
Eine Dynamic Link Library (DLL) ist eine ausführbare Datei, die eine gemeinsam genutzte Bibliothek von Funktionen darstellt. Mittels dynamischer Verknüpfung kann ein Prozess eine Funktion aufrufen, die nicht in seinem ausführbaren Code enthalten ist. Der ausführbare Code der Funktion befindet sich in einer DLL, die eine oder mehrere Funktionen enthält, die kompiliert, verknüpft und unabhängig von den Prozessen, von denen sie aufgerufen werden, gespeichert werden. DLLs erleichtern außerdem die gemeinsame Nutzung von Daten und Ressourcen. Mehrere Anwendungen können gleichzeitig auf den Inhalt einer einzigen Kopie einer im Arbeitsspeicher enthaltenen DLL zugreifen.
Die dynamische Verknüpfung unterscheidet sich von der statischen Verknüpfung darin, dass ein ausführbares Modul (entweder eine DLL- oder EXE-Datei) nur die Informationen enthalten kann, die erforderlich sind, um den ausführbaren Code einer DLL-Funktion zur Laufzeit zu laden. Bei der statischen Verknüpfung ruft der Linker alle Funktionen, auf die verwiesen wird, aus der Static Link Library ab und speichert diese zusammen mit dem Code in der ausführbaren Datei.
Die dynamische Verknüpfung bietet gegenüber der statischen Verknüpfung verschiedene Vorteile. DLLs gewährleisten sparsamen Umgang mit Arbeitsspeicher, weniger Auslagerungsaktivitäten, geringen Festplattenspeicherbedarf, leichteres Upgrade, Unterstützung nach der Vermarktung, einen Mechanismus zur Erweiterung der MFC-Bibliotheksklassen, Unterstützung mehrerer Programmiersprachen und die einfache Erstellung internationaler Versionen.
Die folgenden Themen enthalten ausführliche Informationen über das Programmieren von DLLs.
In diesem Abschnitt
Exemplarische Vorgehensweise: Erstellen und Verwenden einer Dynamic Link Library (C++)
Beschreibt, wie Sie mit Visual Studio eine DLL erstellen und verwenden.Unterschiede zwischen Anwendungen und DLLs
Beschreibt die grundlegenden Unterschiede zwischen Anwendungen und DLLs.Vorteile der Verwendung von DLLs
Beschreibt die Vorteile von dynamischen Verknüpfungen.Arten von DLLs
Bietet Informationen zu den verschiedenen Arten von DLLs, die erstellt werden können.Häufig gestellte Fragen (FAQs)zu DLLs
Bietet Antworten auf häufig gestellte Fragen zu DLLs.Verknüpfen einer ausführbaren Datei mit einer DLL
Beschreibt das explizite und implizite Verknüpfen mit einer DLL.Initialisieren einer DLL
Beschreibt den Initialisierungscode einer DLL (z. B. den zur Speicherbelegung), der beim Laden der DLL ausgeführt werden muss.Verhalten der Laufzeitbibliothek
Beschreibt, wie die DLL-Startsequenz durch die Laufzeitbibliothek ausgeführt wird."LoadLibrary" und "AfxLoadLibrary"
Erörtert die Verwendung von LoadLibrary und AfxLoadLibrary zum expliziten Verknüpfen einer DLL.GetProcAddress
Erörtert die Verwendung von GetProcAddress, um die Adresse einer exportierten Funktion in der DLL abzurufen."FreeLibrary" und "AfxFreeLibrary"
Beschreibt die Verwendung von FreeLibrary und AfxFreeLibrary in Situationen, in denen das DLL-Modul nicht länger benötigt wird.Von Windows verwendeter Suchpfad zum Auffinden einer DLL
Beschreibt den Suchpfad, der vom Betriebssystem Windows zum Auffinden einer DLL im System verwendet wird.Modulzustände einer regulären, dynamisch mit MFC verknüpften DLL
Beschreibt die Modulzustände einer regulären, dynamisch mit MFC verknüpften DLL.Erweiterungs-DLLs
Erläutert DLLs, die typischerweise wiederverwendbare Klassen implementieren, welche von bestehenden Microsoft Foundation Class Library-Klassen abgeleitet wurden.Erstellen einer DLL als reine Ressource
Erörtert eine reine Ressourcen-DLL, die ausschließlich Ressourcen enthält, z. B. Symbole, Bitmaps, Zeichenfolgen und Dialogfelder.Lokalisierte Ressourcen in MFC-Anwendungen: Satelliten-DLLs
Bietet erweiterte Unterstützung für Satelliten-DLLs, ein Feature, das den Entwickler bei der Erstellung von Anwendungen unterstützt, die für mehrere Sprachen lokalisiert sind.Importieren und Exportieren
Beschreibt das Importieren öffentlicher Symbole in eine Anwendung bzw. das Exportieren von Funktionen aus einer DLL.Active Technology und DLLs
Bietet die Möglichkeit, Objektserver vollständig innerhalb einer DLL zu implementieren.Automatisierung in einer DLL
Beschreibt, welche Features die Automatisierungsoption im MFC-DLL-Assistenten bereitstellt.Namenskonventionen für MFC-DLLs
Erörtert, nach welcher strukturierten Namenskonvention die in MFC enthaltenen DLLs und Bibliotheken benannt sind.Aufrufen von DLL-Funktionen aus Visual Basic-Anwendungen heraus
Beschreibt den Aufruf von DLL-Funktionen aus Visual Basic-Anwendungen.
Verwandte Abschnitte
Verwenden von MFC als Teil einer DLL
Beschreibt reguläre DLLs, mit deren Hilfe die MFC-Bibliothek als Bestandteil einer Dynamic Link Library von Windows verwendet werden kann.DLL Version of MFC (nur auf Englisch verfügbar)
Beschreibt, wie die gemeinsam genutzten Dynamic Link Libraries MFCxx.dll und MFCxxD.dll (wobei x für die MFC-Versionsnummer steht) mit MFC-Anwendungen und Erweiterungs-DLLs verwendet werden können.Common Programming Methodologies
Enthält Links zu Themen, die grundlegende Informationen über Visual C++-Bibliotheken bieten, sowie zu Themen, in denen unterschiedliche Codierungstechnologien und -verfahren erläutert werden.