Artikel-ID: 131313 - Geändert am: Dienstag, 29. Juni 2004 - Version: 2.1 32-Bit-Importbibliotheken ohne .OBJs oder Datenquelle erstellen
Auf dieser SeiteZusammenfassungErläutert, wie zum Erstellen einer Import Bibliothek erhalten eine DLL für die Sie keine Source Code oder das Objekt Module verfügen. Befindet sich keine 32-Bit-Hilfsprogramm, die ein Bibliothek importieren aus einer DLL erstellen können wie es mit 16-Bit-Versionen von Visual C++ war. Hinweis : Diese Methode funktioniert möglicherweise nicht mit DLLs mit nicht-Microsoft-Entwicklungstools generiert. Weitere InformationenNormalerweise ist beim Erstellen einer DLL oder jedes Ziel, die exportiert Funktionen oder Datenelemente, eine Import-Bibliothek (und exportiert-Datei) als Teil der Verknüpfungsvorgang generiert. Aber im Fall von einem Fremdanbieter-DLL, der nicht mit einer Bibliothek importieren ausgeliefert wird, müssen Sie möglicherweise eine Import-Bibliothek generieren, um die DLL erfolgreich mit Load-Time dynamic linking zu verwenden. Eine Import-Bibliothek ist für die Run-Time dynamic linking nicht erforderlich. Es gibt zwei Möglichkeiten, ein Import Bibliothek erhalten eine DLL zu erstellen:
Erstellen einer DEF-DateiNur dann können Sie eine DEF-Datei ein Bibliothek importieren aus einer DLL erstellen für die Sie nicht den Quellcode besitzen oder Objektmodule-ist, wenn die DLL-Funktionen über eine C-Schnittstelle exportiert. Insbesondere müssen die Funktionen die C-Aufrufkonvention verwenden deklariert wurden. Dies wird durch das normalerweise für die Funktion im Prototyp verwendet _cdecl-Attribut angegeben. Beachten Sie, dass wenn kein Attribut angegeben ist, _cdecl die Standardeinstellung ist beim/Gz (_stdcall ist die Standardeinstellung) oder/GR (_fastcall ist die Standardeinstellung) ist nicht in der CL-Befehlszeile angegeben. Der Grund für diese Einschränkung basiert auf einer Annahme wird die LIB-Dienstprogramm, dass alle Namen automatisch ohne einem führenden Unterstrich exportiert werden. Dies gilt nur für _cdecl-Funktionsnamen.Eine DLL mit Funktionen, die über eine C-Schnittstelle exportiert erteilt, können Sie eine Import-Bibliothek erstellen, gehen Sie folgendermaßen vor:
Stubbing aus FunktionenBei exportierten Funktionen, die Aufrufkonventionen als auf C verwenden, ist die Situation ein wenig komplexer. Dies gilt vor allem wenn Sie C++-Funktionen und die komplexeren Namen Dekoration Schemas beteiligten berücksichtigen. Diese Methode verwenden, müssen Sie mindestens die Headerdatei verfügen, die die DLL-Schnittstelle beschreibt.Um gekürzte Funktionen von Prototypen in einer Headerdatei zu erstellen:
BeispielWenn die Headerdatei, die MYDLL.DLL beschreibt aussieht: CL/c /Ob0 mydll.CPP Hinweis: Deaktivieren von Inlinefunktionen ist erforderlich, Erzwingen der Generierung von Symbolen für die Funktionen in CMyClass definiert wird. Wenn Inlinefunktionen aktiviert wurden, würde der Compiler feststellen, dass keine Verweise auf die Memberfunktionen in der Übersetzungseinheit damit es die Funktionstext verwerfen möchten. Finden Sie die Diskussion auf Inlinefunktionserweiterung unter Optimierungen in der Zeile Referenz zu Visual C++ CL-Befehl. Sobald Sie .OBJ-Dateien haben, können Sie LIB/DEF: zum Erstellen der Import-Bibliothek (.lib) und Exportdatei (.exp): LIB/DEF: mydll.OBJ Weitere Informationen über den Befehl LIB finden Sie in "LIB Reference" in Visual C++ Books Online. Darüber hinaus finden Sie die folgenden Artikel der Microsoft Knowledge Base: 140485
(http://support.microsoft.com/kb/140485/EN-US/
)
Exportieren von PASCAL wie Symbole in 32-Bit-DLLs Die Informationen in diesem Artikel beziehen sich auf:
Maschinell übersetzter ArtikelWichtig: Dieser Artikel wurde maschinell und nicht von einem Menschen übersetzt. Die Microsoft Knowledge Base ist sehr umfangreich und ihre Inhalte werden ständig ergänzt beziehungsweise überarbeitet. Um Ihnen dennoch alle Inhalte auf Deutsch anbieten zu können, werden viele Artikel nicht von Menschen, sondern von Übersetzungsprogrammen übersetzt, die kontinuierlich optimiert werden. Doch noch sind maschinell übersetzte Texte in der Regel nicht perfekt, insbesondere hinsichtlich Grammatik und des Einsatzes von Fremdwörtern sowie Fachbegriffen. Microsoft übernimmt keine Gewähr für die sprachliche Qualität oder die technische Richtigkeit der Übersetzungen und ist nicht für Probleme haftbar, die direkt oder indirekt durch Übersetzungsfehler oder die Verwendung der übersetzten Inhalte durch Kunden entstehen könnten. Den englischen Originalartikel können Sie über folgenden Link abrufen: 131313
(http://support.microsoft.com/kb/131313/en-us/
)
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
| Weitere Ressourcen Weitere SupportseitenCommunitySPRACHE AUSWÄHLEN |






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email



Zum Anfang