Alle Symbole in einer DLL automatisch exportieren, ohne Makros oder .def-Dateien
In Visual Studio 2005 können Sie alle Symbole aus einer DLL exportieren ohne manuell __declspec(dllexport) hinzuzufügen oder .def-Dateien zu erstellen. Dies wird durch die folgenden Schritte erreicht:
Verwendung von CMake (empfohlen)
- Installieren Sie CMake Version 3.3.20150721-g9cd2f oder höher, die die Funktion „Exportieren“ enthält Alle“-Funktion.
- Fügen Sie die Zeile hinzu set(CMAKE_WINDOWS_EXPORT_ALL_SYMBOLS ON) auf Ihre CMakeLists.txt-Datei.
- Erstellen Sie ein Visual Studio-Projekt mit CMake.
- Kompilieren Sie das Projekt und alle Symbole werden automatisch exportiert.
Hinweis: Stellen Sie bei Verwendung dieser Methode sicher, dass /GL (Whole Program Optimization) ist nicht aktiviert.
.obj-Dateien analysieren
- Erstellen Sie ein Programm, um die .obj-Dateien zu analysieren und die exportierten Symbole zu extrahieren.
- Sammeln Sie Informationen wie Aufrufkonventionen, Symbolfelder und extern/statisch Informationen.
- Generieren Sie eine .def-Datei mit den extrahierten Symbolen.
- Verknüpfen Sie die DLL mithilfe der .def-Datei.
Diese Methode erfordert zwar zusätzlichen Aufwand, ist aber nicht erforderlich Bietet Flexibilität beim Parsen der .obj-Dateien.
Zusätzlich Tipps
- Verwenden Sie die Exportmakros __declspec(dllexport) oder __cdecl für C-Funktionen, um Namensverzerrungen zu vermeiden.
- Verwenden Sie eine statische Bibliothek zum Exportieren von Symbolen, analysieren und extrahieren Sie sie anschließend Verwendung in einer .def-Datei.
Das obige ist der detaillierte Inhalt vonWie kann ich alle Symbole aus einer DLL in Visual Studio exportieren, ohne Makros oder DEF-Dateien zu verwenden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!