Wie man eine .lib-Datei erstellt, wenn eine .dll-Datei und eine Header-Datei vorhanden sind
Ich versuche zum erstellen einer Anwendung in visual studio, wird der Zugang zu einer .dll-Datei, die bereits existiert. Muss ich die Anwendung aufrufen, die Routinen. Ich habe auch eine header-Datei, die bereits existiert.
Ich habe geforscht im internet und habe festgestellt, dass ich erstellen müssen .lib-Datei. Blick auf ähnliche Fragen hier fand ich einen link: http://support.microsoft.com/kb/131313
Ich kann aber nicht Folgen Sie den Anweisungen.
Den Informationen in dem link sagt, um eine DEF-Datei ( die ich an anderer Stelle gelesen, dass das kompiliert werden muss, wie eine DLL mit dem gleichen Namen, aber nicht sicher, was der name ist, den gleichen Namen wie die .dll-Datei?). Aber ich verstehe nicht, die erste Richtung, zu 'Verwenden Sie DUMPBIN /EXPORTS'. Ich habe dann müssen 'stub' - Funktionen, und dann etwas zu tun .OBJ-Dateien (ich weiß nicht, was diese Dateien sind).
Gibt es Schritt-für-Schritt-Anweisungen, ähnlich wie der link oben, die sind einfach zu Folgen?
InformationsquelleAutor der Frage hde | 2012-02-20
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wirst du brauchen Microsoft Visual C++ 2010 Express (oder einer anderen Quelle von MSVC Kommandozeilen-tools), und die DLL.
Schritte:
dumpbin /EXPORTS yourfile.dll > yourfile.exports
yourfile.exports
in eine neueyourfile.def
- Datei. Fügen Sie eine Zeile mit dem WortEXPORTS
an den Anfang dieser Datei.VC\bin
- Verzeichnis (das, in demlib.exe
und anderen compile tools befinden).Sollten Sie zwei Dateien generiert:
yourfile.lib
undyourfile.exp
InformationsquelleAutor der Antwort Sany Liew
Können Sie mit Digital Mars ist IMPLIB tool. Kann es eine lib-Datei verwenden nur die dll, ohne die Notwendigkeit für einen .def-Datei.
Ist der download-link http://ftp.digitalmars.com/bup.zip.
Die Befehlszeile:
InformationsquelleAutor der Antwort Desu_Never_Lies
Statt .def, die Sie erstellen können .lib-Datei aus .dll-Datei, die durch das exportieren von Funktionen /Klassen definiert .dll-Datei von __declspec(dllexport), auf welche verwiesen wurde, die in der Anwendung code.
Zum Beispiel (Pseudo-code)
PROJEKT für die Erstellung X.dll Datei (sagen wir, X ist eine dll-name):
A. h:
A.cpp:
Wenn du die oben genannten dll-Projekt in Visual Studio, dann erzeugt der compiler X.dll und auch X. lib [die exportierte Funktion foo durch __declspec(dllexport) ].
App.cpp:
Zur weiteren Untersuchung entnehmen Sie bitte der folgenden links zum besseren Verständnis:
http://www.codeproject.com/Articles/28969/HowTo-Export-C-classes-from-a-DLL#CppMatureApproach
http://msdn.microsoft.com/en-us/library/ms686923(v=vs. 85).aspx
InformationsquelleAutor der Antwort SridharKritha