Beschreibung der Standard C- und C++-Bibliotheken, denen Verknüpfen eines Programms mit wird beim Erstellen mit Visual C++

Wichtig: Dieser Artikel wurde maschinell übersetzt und wird dann möglicherweise mithilfe des Community Translation Framework (CTF) von Mitgliedern unserer Microsoft Community nachbearbeitet. Weitere Informationen zu CTF finden Sie unter http://support.microsoft.com/gp/machine-translation-corrections/de.

Den englischen Originalartikel können Sie über folgenden Link abrufen: 154753
Zusammenfassung
Dieser Artikel beschreibt die Standardbibliotheken LIBC [D]. LIB LIBCMT [D]. LIB LIBCI [D]. LIB LIBCIMT [D]. LIB LIBCP [D]. LIB LIBCPMT [D]. LIB MSVCRT [D]. LIB MSVCIRT(VER_2).DLL [D]. LIB und MSVCPRT [D]. LIB, das Verknüpfen eines Programms mit wird bei Verwendung von Visual C++.
Weitere Informationen
Beim Erstellen einer Veröffentlichung (oder Debug) Version des Projekts in Visual C++ eine grundlegenden C Laufzeitbibliotheken (LIBC [D]. LIB LIBCMT [D]. LIB und MSVCRT [D]. LIB) standardmäßig verknüpft, je nach der Compileroption (Singlethread- <ML[d]>, multithreaded <MT[d]>oder Multithread-DLL<MD[d]>) wählen. Eine Bibliothek von C++-Standardbibliothek oder aus der alten Iostream-Bibliothek kann auch je nach den Headern verknüpft werden, in Ihrem Code verwenden. Betrachten Sie beispielsweise die folgenden Fälle:<b00> </b00> </MD[d]> </MT[d]> </ML[d]>

Fall 1: Beispiel-Programm test1.cpp

// test1.cppvoid main(){}				
  • Erstellen test1.cpp ml (bzw. /mld/MLDfür ein Debugbuild)-Compileroption verwenden, wird das Programm mit LIBC verknüpft. LIB (oder LIBCD. LIB, für Debugbuilds), zusätzlich zu anderen Bibliotheken.
    HinweisMl und MLD Bibliothek Compiler für statische Singlethreaded Bibliotheken wurden in Visual C++ 2005 und höheren Versionen von Visual C++ entfernt.
  • Erstellen test1.cpp/MT (bzw. MTdfür ein Debugbuild)-Compileroption verwenden, wird das Programm mit LIBCMT verknüpft. LIB (oder LIBCMTD. LIB, für Debugbuilds), zusätzlich zu anderen Bibliotheken.
  • Erstellen test1.cpp/MD (bzw. /mdd/MDdfür ein Debugbuild)-Compileroption verwenden, wird das Programm mit MSVCRT verknüpft. LIB (oder MSVCRTD. LIB, für Debugbuilds), zusätzlich zu anderen Bibliotheken. In diesem Fall wird das Programm MSVCRT abhängen. DLL (oder MSVCRTD. DLL für Debugbuilds).

Fall 2: Beispiel Programm test2.cpp

   // test2.cpp   #include <iostream>   void main()   {   }				
  • Wenn build test2.cpp ml (bzw. /mld/MLDfür ein Debugbuild)-Compileroption verwenden, wird das Programm mit LIBC verknüpft. LIB (oder LIBCD. LIB für Debugbuilds) und LIBCP. LIB (oder LIBCPD. LIB, für Debugbuilds), zusätzlich zu anderen Bibliotheken.
    HinweisMl und MLD Bibliothek Compiler für statische Singlethreaded Bibliotheken wurden in Visual C++ 2005 und höheren Versionen von Visual C++ entfernt.
  • Erstellen test2.cpp MT (bzw. MTdfür ein Debugbuild)-Compileroption verwenden, wird das Programm mit LIBCMT verknüpft. LIB (oder LIBCMTD. LIB für Debugbuilds) und LIBCPMT. LIB (oder LIBCPMTD. LIB, für Debugbuilds), zusätzlich zu anderen Bibliotheken.
  • Wenn build test2.cpp Kontextoperator (bzw. /mdd/MDdfür ein Debugbuild)-Compileroption verwenden, wird das Programm mit MSVCRT verknüpft. LIB (oder MSVCRTD. LIB für Debugbuilds) und MSVCPRT. LIB (oder MSVCPRTD. LIB, für Debugbuilds), zusätzlich zu anderen Bibliotheken.
    Für Microsoft Visual C++ 2008 wird das Programm MSVCR90 abhängig sein. DLL und MSVCP90. DLL (oder MSVCR90D. DLL und MSVCP90D. DLL für Debugbuilds).
    Für Microsoft Visual C++ 2005 wird das Programm Datei MSVCR80 abhängen. DLL und MSVCP80. DLL (oder MSVCR80D. DLL und MSVCP80D. DLL für Debugbuilds).
    Microsoft Visual C++ 2003 wird das Programm MSVCR71 abhängen. DLL und MSVCP71. DLL (oder MSVCR71D. DLL und MSVCP71D. DLL für Debugbuilds).
    Microsoft Visual C++ 2002 wird das Programm MSVCR70 abhängen. DLL und MSVCP70. DLL (oder MSVCR70D. DLL und MSVCP70D. DLL für Debugbuilds).
    Für Microsoft Visual C++ 6.0 wird Ihr Programm MSVCRT abhängig sein. DLL und MSVCP60. DLL (oder MSVCRTD. DLL und MSVCP60D. DLL für Debugbuilds).
    Für Microsoft Visual C++ 5.0 wird Ihr Programm MSVCRT abhängig sein. DLL und MSVCP50. DLL (oder MSVCRTD. DLL und MSVCP50D. DLL für Debugbuilds).
    Für Microsoft Visual C++ 4.2 wird Ihr Programm MSVCRT abhängig sein. DLL (oder MSVCRTD. DLL für Debugbuilds) und MSVCPRT. LIB (oder MSVCPRTD. LIB für Debugbuilds).

Fall 3: Beispiel Programm test3.cpp

Hinweis Die Stream-Header-Dateien, die die Erweiterung .h (einschließlich <useoldio.h>) sind veraltet in Visual C++ 2002 und Visual C++ 2005 und Visual C++ 2003 entfernt wurden. Im folgende Beispiel wird daher nicht in einer Version von Visual C++ nach Visual C++ 2002 arbeiten. </useoldio.h>
// test3.cpp#include <iostream.h>void main(){}				
  • Erstellen test3.cpp ml (bzw. /mld/MLDfür ein Debugbuild)-Compileroption verwenden, wird das Programm mit LIBC verknüpft. LIB (oder LIBCD. LIB für Debugbuilds) und LIBCI. LIB (oder LIBCID. LIB, für Debugbuilds), zusätzlich zu anderen Bibliotheken.
    HinweisMl und MLD Bibliothek Compiler für statische Singlethreaded Bibliotheken wurden in Visual C++ 2005 und höheren Versionen von Visual C++ entfernt.
  • Erstellen test3.cpp/MT (bzw. MTdfür ein Debugbuild)-Compileroption verwenden, wird das Programm mit LIBCMT verknüpft. LIB (oder LIBCMTD. LIB für Debugbuilds) und LIBCIMT. LIB (oder LIBCIMTD. LIB, für Debugbuilds), zusätzlich zu anderen Bibliotheken.
  • Erstellen test3.cpp/MD (bzw. /mdd/MDdfür ein Debugbuild)-Compileroption verwenden, wird das Programm mit MSVCRT verknüpft. LIB (oder MSVCRTD. LIB für Debugbuilds) und MSVCIRT(VER_2).dll. LIB (oder MSVCIRTD. LIB, für Debugbuilds) zusätzlich zu anderen Bibliotheken. In diesem Fall wird das Programm MSVCRT abhängen. DLL (oder MSVCRTD. DLL für Debugbuilds) und MSVCIRT(VER_2).dll. DLL (oder MSVCIRTD. DLL für Debugbuilds).
Header ermitteln, ob die standardmäßigen C++-Bibliotheken, alten Iostream-Bibliotheken oder keinem verknüpft werden. Compileroptionen (ml [d], [d] / MT, kontextoperator/MD [d]) bestimmen die Version der Singlethreaded, Multithread-Bibliotheken oder Multithread-DLL standardmäßig verknüpft werden.

Hinweis Es scheint, dass Header ohne die Erweiterung .h Standard-c++-Header und Header die Erweiterung .h C Runtime-Header oder alten Iostream-Header sind. Dies ist nicht wahr. Wie unten beschrieben, bestimmen die Dateien <useoldio.h>und <use_ansi.h>die Bibliotheken, denen mit die Anwendung verknüpft wird.

Tatsächlich gibt es zwei Headerdateien, <useoldio.h>und <use_ansi.h>, die #pragmas enthalten. Der #pragmas Erzwingen der alten Iostream-Bibliothek oder der C++-Standardbibliothek standardmäßig verknüpft werden.

Die Headerdatei <useoldio.h>enthält #pragma Aussagen, die die alte Iostream-Bibliothek verknüpft werden, erzwingen. Alle alten Iostream-Header enthalten <useoldio.h>. Also wenn Sie alten Iostream-Header in die Anwendung einschließen, die alte Iostream-Bibliothek standardmäßig verknüpft. Die folgende Tabelle listet alle Header-Dateien, die enthalten <useoldio.h>.<b00> </b00> </useoldio.h> </useoldio.h> </useoldio.h></use_ansi.h></useoldio.h></use_ansi.h></useoldio.h>

Alten Iostream-Header

FSTREAM. HIOMANIP. H
IOS. HIOSTREAM. H
ISTREAM. HOSTREAM. H
STDIOSTR. HSTREAMB. H
STRSTREA. H
Hinweis <useoldio.h>gilt nur für Visual C++ NET 2003 und früheren Versionen. Da die alten Iostream-Bibliothek von Visual C++ 2003 und späteren Versionen entfernt wurde der <useoldio.h>Header wurde auch.</useoldio.h> </useoldio.h>
Die Headerdatei <use_ansi.h>enthält #pragma Aussagen, die C++-Standardbibliothek verknüpft werden, erzwingen. Alle Standard C++-Header enthalten <use_ansi.h>. Also wenn Sie C++-Standardbibliothek Header in die Anwendung einschließen, der C++-Standardbibliothek standardmäßig verknüpft. Die folgende Tabelle listet alle Header-Dateien, die enthalten <use_ansi.h>.<b00> </b00> </use_ansi.h> </use_ansi.h> </use_ansi.h>

Standard C++-Header

ALGORITHMUSBITSETKOMPLEXEDEQUE
FSTREAMFUNKTIONALEIOMANIPIOS
IOSFWDIOSTREAMISTREAMITERATOR
GRENZENLISTELÄNDERINFORMATIONENKARTE
SPEICHERNUMERISCHEOSTREAMWARTESCHLANGE
SETSSTREAMSTAPELSTDEXCEPT
STREAMBUFZEICHENFOLGESTRSTREAMTYPEINFO
DIENSTPROGRAMMVALARRAYVEKTORXIOSBASE
XLOCALEXLOCINFOXLOCMONXLOCNUM
XLOCTIMEXMEMORYXSTRINGXTREE
XUTILITYYMATH. H
Aufrufe der alten Iostream-Bibliothek und der neuen C++-Standardbibliothek in Visual C++ 4.2 können nicht gemischt werden.
Die Compile-optionVerknüpft mit Bibliotheken
Ml (VC++ NET, 2003 und früher)LIBC. LIB LIBCP. LIB
/ MLd (VC++ NET, 2003 und früher)LIBCD. LIB LIBCPD. LIB
/ MTLIBCMT. LIB LIBCPMT. LIB
/ MTdLIBCMTD. LIB LIBCPMTD. LIB
/ MDMSVCRT. LIB MSVCPRT. LIB
/ MDdMSVCRTD. LIB MSVCPRTD. LIB

Übersicht der verwendeten CRT-DLLs

Importbibliothek verknüpft mitDLLs verwendet (Visual C++-5.0|6.0)Verwendeten DLLs (NET 2002| Visual C++-NET 2003)Verwendeten DLLs (Visual C++ 2005| Visual C++ 2008
MSVCRT. LIB MSVCRT. DLL MSVCR7(0|1). DLL MSVCR(80|90). DLL
MSVCRTD. LIB MSVCRTD. DLL MSVCR7 (0|1) D.DLL MSVCR (80|90) D.DLL
MSVCPRT. LIB MSVCP (5|6) 0.DLL MSVCP7(0|1). DLL MSVCP(80|90). DLL
MSVCPRTD. LIB MSVCP (5|6) 0D. DLL MSVCP7 (0|1) D.DLL MSVCP (80|90) D.DLL
MSVCIRT(VER_2).DLL. LIB MSVCIRT(VER_2).DLL. DLL
MSVCIRTD. LIB MSVCIRTD. DLL
Informationsquellen
C-Laufzeitbibliotheken
http://msdn.Microsoft.com/en-us/library/abx4dbyh.aspxKlicken Sie für Weitere Informationen auf die folgende Artikelnummer, um den Artikel der Microsoft Knowledge Base anzuzeigen:
154419 C++-Standardbibliothek gestellte häufig Fragen
MSVCRT. DLL MSVCIRT(VER_2).DLL. DLL MSVCPRT. LIB LIBCI. LIB LIBCIMT. LIB LIBCP. LIB LIBCPMT. LIB MSVCR MSVCP

Warnung: Dieser Artikel wurde automatisch übersetzt.

خصائص

رقم الموضوع: 154753 - آخر مراجعة: 01/02/2016 04:08:00 - المراجعة: 8.0

Microsoft Visual C++ 2008 Express Edition, Microsoft Visual C++ 2005 Express Edition, Microsoft Visual C++ .NET 2003 Standard Edition, Microsoft Visual C++ .NET 2002 Standard Edition, Microsoft Visual C++ 5.0 Professional Edition, Microsoft Visual C++ 5.0 Enterprise Edition, Microsoft Visual C++ 4.2 Enterprise Edition

  • kbarttypeinf kbcompiler kbinfo kblangcpp kbmt KB154753 KbMtde
تعليقات