Makale numarası: 154753 - Son Gözden Geçirme: 19 Mart 2008 Çarşamba - Gözden geçirme: 7.1

Bir program ile Visual C++ kullanarak yerleşik zaman bağlar varsayılan C ve C++ Kitaplığı'nın açıklaması

Sistem İpucuBu makale, kullandığınızdan farklı bir işletim sistemine yöneliktir. Sizinle ilgili olmayabilecek makale içeriği devre dışı bırakıldı.

Bu Sayfada

Hepsini aç | Hepsini kapa

Özet

Bu makalede, varsayılan kitaplıkları LIBC [D] .LIB LIBCMT [D] .LIB, [D] LIBCI .LIB, [D] .LIB LIBCIMT, [D] LIBCP .LIB, [D] .LIB LIBCPMT, MSVCRT [D] .LIB, MSVCIRT [D] .LIB ve bir program ile Visual C++ ile oluşturulan, bağlar MSVCPRT [D] .LIB.

Daha fazla bilgi

Projenizde temel C çalışma zamanı kitaplıkları (LIBC [D] .LIB ve [D] .LIB LIBCMT MSVCRT[D].LIB) bağlantılı seçtiğiniz derleyici seçeneği bağlı olarak varsayılan olarak, (<ML[d]> tek iş parçacıklı, çok iş parçacıklı <MT[d]> ya da birden çok iş parçacığı DLL <MD[d]>)., Visual C++ sürümü (veya hata ayıklama) bir sürümünü oluşturduğunuz zaman Standart C++ Kitaplığı kitaplığından ya da eski iostream Kitaplığı'nden de kodunuzda kullandığınız üstbilgileri bağlı bağlı durumda. Örneğin, aşağıdaki durumlarda göz önünde bulundurun:

Durum 1: Örnek program test1.cpp

// test1.cpp
void main()
{
}
				
  • /ML kullanarak test1.cpp oluşturuyorsanız (veya / MLd, bir hata ayıklama derlemesi için) derleyici seçeneği, programınızı LIBC.LIB (veya LIBCD.LIB, hata ayıklama derlemesi için), ek olarak diğer kitaplıkları bağlayacak.
    Not/ML ve / MLd kitaplığı derleyici seçenekleri, tek iş parçacıklı statik kitaplıkları için Visual C++ 2005 ve Visual C++ sonraki sürümlerinde kaldırılmıştır.
  • /MT kullanarak test1.cpp oluşturuyorsanız (veya / MTd, bir hata ayıklama derlemesi için) derleyici seçeneği, programınızı LIBCMT.LIB (veya LIBCMTD.LIB, hata ayıklama derlemesi için), ek olarak diğer kitaplıkları bağlayacak.
  • /MD kullanarak test1.cpp oluşturuyorsanız (veya / MDd, bir hata ayıklama derlemesi için) derleyici seçeneği, programınızı MSVCRT.LIB (veya MSVCRTD.LIB, hata ayıklama derlemesi için), ek olarak diğer kitaplıkları bağlayacak. Bu durumda, programınızı MSVCRT.DLL (veya hata ayıklama derlemesi için MSVCRTD.DLL) bağımlı olacaktır.

Durum 2: Örnek program test2.cpp

   // test2.cpp
   #include <iostream>
   void main()
   {
   }
				
  • /ML kullanarak test2.cpp oluşturuyorsanız (veya / MLd, bir hata ayıklama derlemesi için) derleyici seçeneği, programınızı LIBC.LIB (veya LIBCD.LIB, hata ayıklama derlemesi için) bağlayacak ve LIBCP.LIB (veya LIBCPD.LIB, hata ayıklama derlemesi için), ek olarak diğer kitaplıkları.
    Not/ML ve / MLd kitaplığı derleyici seçenekleri, tek iş parçacıklı statik kitaplıkları için Visual C++ 2005 ve Visual C++ sonraki sürümlerinde kaldırılmıştır.
  • /MT kullanarak test2.cpp oluşturuyorsanız (veya / MTd, bir hata ayıklama derlemesi için) derleyici seçeneği, programınızı LIBCMT.LIB (veya LIBCMTD.LIB, hata ayıklama derlemesi için) bağlayacak ve LIBCPMT.LIB (veya LIBCPMTD.LIB, hata ayıklama derlemesi için), ek olarak diğer kitaplıkları.
  • Test2.cpp kullanarak oluşturuyorsanız (or /MDd, for a debug build) /MD derleyici seçeneği, programınızı MSVCRT.LIB (veya MSVCRTD.LIB, hata ayıklama derlemesi için) bağlayacak ve MSVCPRT.LIB (veya MSVCPRTD.LIB, hata ayıklama derlemesi için), ek olarak diğer kitaplıkları.
    Microsoft Visual C++ 2008 için programınızı MSVCR90.DLL MSVCP90.DLL (veya MSVCR90D.DLL ve hata ayıklama derlemesi için MSVCP90D.DLL) bağımlı olacaktır.
    Microsoft Visual C++ 2005 için programınızı MSVCR80.DLL MSVCP80.DLL (veya MSVCR80D.DLL ve hata ayıklama derlemesi için MSVCP80D.DLL) bağımlı olacaktır.
    Microsoft Visual C++ 2003 için programınızın MSVCR71.DLL MSVCP71.DLL (veya MSVCR71D.DLL ve hata ayıklama derlemesi için MSVCP71D.DLL) bağımlı olacaktır.
    Microsoft Visual C++ 2002 için programınızı MSVCR70.DLL MSVCP70.DLL (veya MSVCR70D.DLL ve hata ayıklama derlemesi için MSVCP70D.DLL) bağımlı olacaktır.
    Microsoft Visual C++ 6.0 için programınızı MSVCRT.DLL MSVCP60.DLL (veya MSVCRTD.DLL ve hata ayıklama derlemesi için MSVCP60D.DLL) bağımlı olacaktır.
    Microsoft Visual C++ 5.0, programınızı MSVCRT.DLL MSVCP50.DLL (veya MSVCRTD.DLL ve hata ayıklama derlemesi için MSVCP50D.DLL) bağımlı olacaktır.
    Microsoft Visual C++ 4.2 için programınızı MSVCRT.DLL (veya hata ayıklama derlemesi için MSVCRTD.DLL) bağımlı olacaktır ve MSVCPRT.LIB (veya MSVCPRTD.LIB, hata ayıklama derlemesi için).

Durum 3: Örnek program test3.cpp

Not.H uzantısı olan akış üstbilgi dosyaları (<useoldio.h> içerir) Visual C++ 2002 onaylanmaz ve Visual C++ 2005 ve Visual C++ 2003 bu güvenlik açığından kaldırıldı. Bu nedenle, aşağıdaki örnek Visual C++ Visual C++ 2002'den sonraki bir sürümünde çalışmaz.
// test3.cpp
#include <iostream.h>
void main()
{
}
				
  • /ML kullanarak test3.cpp oluşturuyorsanız (veya / MLd, bir hata ayıklama derlemesi için) derleyici seçeneği, programınızı LIBC.LIB (veya LIBCD.LIB, hata ayıklama derlemesi için) bağlayacak ve LIBCI.LIB (veya LIBCID.LIB, hata ayıklama derlemesi için), ek olarak diğer kitaplıkları.
    Not/ML ve / MLd kitaplığı derleyici seçenekleri, tek iş parçacıklı statik kitaplıkları için Visual C++ 2005 ve Visual C++ sonraki sürümlerinde kaldırılmıştır.
  • /MT kullanarak test3.cpp oluşturuyorsanız (veya / MTd, bir hata ayıklama derlemesi için) derleyici seçeneği, programınızı LIBCMT.LIB (veya LIBCMTD.LIB, hata ayıklama derlemesi için) bağlayacak ve LIBCIMT.LIB (veya LIBCIMTD.LIB, hata ayıklama derlemesi için), ek olarak diğer kitaplıkları.
  • /MD kullanarak test3.cpp oluşturuyorsanız (veya / MDd, bir hata ayıklama derlemesi için) derleyici seçeneği, programınızı MSVCRT.LIB (veya MSVCRTD.LIB, hata ayıklama derlemesi için) bağlayacak ve MSVCIRT.LIB (veya MSVCIRTD.LIB, hata ayıklama derlemesi için) yanı sıra diğer kitaplıkları. Bu durumda, programınızı MSVCRT.DLL (veya hata ayıklama derlemesi için MSVCRTD.DLL) bağımlı olacaktır ve MSVCIRT.DLL (veya MSVCIRTD.DLL hata ayıklama derlemesi için).
Üstbilgiler, standart C++ Kitaplığı, eski iostream kitaplıkları veya hiçbiri bağlanır olup olmadığını belirleyin. Derleyici Seçenekleri (/ML [d], [d] /MT, /MD [d]) hangi kitaplıkları tek iş parçacıklı, çok iş parçacıklı sürümünü ya da birden çok iş parçacığı DLL varsayılan olarak bağlantı kurulacak saptayın.

Not.H uzantısı olmadan üstbilgileri standart C++ üstbilgi olduğundan ve .h uzantısı üstbilgileriyle C çalışma zamanı modülü başlıkları veya eski iostream üstbilgileri olduğunu görünebilir. Bu doğru değildir. Dosyalar, aşağıda açıklandığı gibi <useoldio.h> ve <use_ansi.h> uygulamanız ile bağlayacak kitaplıkları belirler.

Aslında, iki üstbilgi dosyaları vardır <useoldio.h> ve <use_ansi.h>, #pragmas içeren. #Pragmas eski iostream kitaplığı ya da varsayılan olarak bağlantı kurulacak yer standart C++ Kitaplığı zorla.

Üstbilgi dosyası <useoldio.h> bağlantı kurulacak eski iostream kitaplığı zorla # Pragma ifadeleri içerir. Tüm eski iostream üstbilgileri <useoldio.h> içerir. Uygulamanızda herhangi bir eski iostream başlığını eklerseniz, bu nedenle, eski iostream kitaplığı varsayılan olarak bağlanır. Aşağıdaki tabloda, <useoldio.h> içeren üstbilgi dosyaları listeler.

Eski iostream üstbilgileri

Bu tabloyu kapaBu tabloyu aç
fstream.hiomanip.h
ios.hiostream.h
istream.hostream.h
stdiostr.hstreamb.h
strstrea.h
Not<useoldio.h> yalnızca Visual C++ .NET 2003 ve önceki sürümleri için geçerlidir. Eski iostream kitaplığı, Visual C++ 2003 ve sonraki sürümleri kaldırıldığından <useoldio.h> üstbilgisi de kaldırılmıştır.
Üstbilgi dosyası <use_ansi.h> bağlantı kurulacak standart C++ Kitaplığı zorla # Pragma ifadeleri içerir. Tüm standart C++ üstbilgileri <use_ansi.h> içerir. Uygulamanızda herhangi bir standart C++ başlığını eklerseniz, bu nedenle standart C++ Kitaplığı varsayılan olarak bağlanır. Aşağıdaki tabloda, <use_ansi.h> içeren üstbilgi dosyaları listeler.

Standart C++ üstbilgileri

Bu tabloyu kapaBu tabloyu aç
ALGORİTMAbitsetKARMAŞIKdeque
fstreamİŞLEViomanipios
iosfwdiostreamistreamYİNELEYİCİ
SINIRLARILİSTEYerel AyarEŞLEME
BellekSAYISALostreamSIRA
SETsstreamYIĞINstdexcept
streambufDizestrstreamtypeinfo
HİZMET PROGRAMIvalarrayVEKTÖRxiosbase
xlocalexlocinfoxlocmonxlocnum
xloctimexmemoryxstringxtree
xutilityymath.h
Eski iostream kitaplığı ve Visual C++ 4.2 yeni standart C++ Kitaplığı getiremezsiniz.
Bu tabloyu kapaBu tabloyu aç
Derleme seçenekKitaplıkları bağlı olan
/ML (VC ++ .NET 2003 ve önceki sürümleri)libc.lib, libcp.lib
/ MLd (VC ++ .NET 2003 ve önceki sürümleri)libcd.lib, libcpd.lib
/mtlibcmt.lib, libcpmt.lib
/ MTdlibcmtd.lib, libcpmtd.lib
/mdmsvcrt.lib, msvcprt.lib
/ MDdmsvcrtd.lib, msvcprtd.lib

Özet Tablo için kullanılan bir CRT dll

Bu tabloyu kapaBu tabloyu aç
Alma kitaplığı bağlı olanDll (Visual C++ 5.0|6.0) kullanılanDll kullanılan (Visual C++ .NET 2002|Visual C++ .NET 2003)Kullanılan dll (Visual C++ 2005|Visual C++ 2008
msvcrt.lib Msvcrt.dll MSVCR7 Level (0|1) .dll MSVCR (80|90) .dll
msvcrtd.lib msvcrtd.dll MSVCR7 Level (0|1) D.DLL (80|90) D.DLL MSVCR
msvcprt.lib (5|6) MSVCP 0.DLL MSVCP7 Level (0|1) .dll MSVCP (80|90) .dll
msvcprtd.lib (5|6) MSVCP 0D.DLL MSVCP7 Level (0|1) D.DLL (80|90) D.DLL MSVCP
msvcirt.lib msvcirt.dll
msvcirtd.lib msvcirtd.dll

Referanslar

c çalışma zamanı kitaplıkları
http://msdn.microsoft.com/en-us/library/abx4dbyh.aspx (http://msdn.microsoft.com/en-us/library/abx4dbyh.aspx) Ek bilgi için, Microsoft Bilgi Bankası'ndaki makaleyi görüntülemek üzere aşağıdaki makale numarasını tıklatın:
154419  (http://support.microsoft.com/kb/154419/ ) Standart C++ Kitaplığı, sık sorulan sorular

Bu makaledeki bilginin uygulandığı durum:
  • 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 Professional Edition
  • Microsoft Visual C++ 4.2 Enterprise Edition
Anahtar Kelimeler: 
kbmt kbarttypeinf kbcompiler kbinfo kblangcpp KB154753 KbMttr
Otomatik TercümeOtomatik Tercüme
ÖNEMLİ: Bu makale, bir kişi tarafından çevrilmek yerine, Microsoft makine-çevirisi yazılımı ile çevrilmiştir. Microsoft size hem kişiler tarafından çevrilmiş, hem de makine-çevrisi ile çevrilmiş makaleler sunar. Böylelikle, bilgi bankamızdaki tüm makalelere, kendi dilinizde ulaşmış olursunuz. Bununla birlikte, makine tarafından çevrilmiş makaleler mükemmel değildir. Bir yabancının sizin dilinizde konuşurken yapabileceği hatalar gibi, makale; kelime dağarcığı, söz dizim kuralları veya dil bilgisi açısından yanlışlar içerebilir. Microsoft, içeriğin yanlış çevrimi veya onun müşteri tarafından kullanımından doğan; kusur, hata veya zarardan sorumlu değildir. Microsoft ayrıca makine çevirisi yazılımını sıkça güncellemektedir.
Makalenin İngilizcesi aşağıdaki gibidir:154753  (http://support.microsoft.com/kb/154753/en-us/ )