Makale numarası: 148652 - Son Gözden Geçirme: 13 Mart 2008 Perşembe - Gözden geçirme: 7.1 Visual C++ yanlış sırada CRT kitaplığı ve MFC kitaplıklarını bağlandığında LNK2005 bir hata oluşur.
Bu SayfadaBelirtilerMicrosoft Foundation Class (MFC) kitaplıkları ve C çalışma zamanı (CRT) kitaplığı yanlış sırada bağlandığında LNK2005 aşağıdaki hatalardan birini alabilirsiniz: nafxcwd.lib(afxmem.obj): <a1>hata</a1> LNK2005: "void * __cdecl işletmen yeni (imzasız int)" (??2@YAPAXI@Z) zaten LIBCMTD.lib(New.obj) tanımlı nafxcwd.lib(afxmem.obj): <a1>hata</a1> LNK2005: "__cdecl işletmen delete(void *) geçersiz" (??3@YAXPAX@Z) zaten tanımlı içinde LIBCMTD.lib(dbgnew.obj) nafxcwd.lib(afxmem.obj): <a1>hata</a1> LNK2005: "void * __cdecl işletmen new(unsigned int,int,char const *,int)" (??2@YAPAXIHPBDH@Z) LIBCMTD.lib(dbgnew.obj) tanımlı mfcs40d.lib(dllmodul.obj): <a1>hata</a1> LNK2005: _DllMain@12 zaten tanımlanmış MSVCRTD.LIB (dllmain.obj) mfcs42d.lib(dllmodul.obj): <a1>hata</a1> LNK2005: _DllMain@12 zaten tanımlanmış msvcrtd.lib(DllMain.obj) NedenCRT kitaplıkları, Yeni, delete ve DllMain işlevi için zayıf dış bağlantı kullanın. MFC kitaplıklarını, Yenisilmek ve DllMain işlevi de içerir. Bu işlevler, CRT kitaplığı bağlı olduğu için önce bağlantı kurulacak MFC kitaplıklarını gerektirir. ÇözümBu sorunu gidermek için iki yol vardır. Doğru sırada kitaplıklarında bağlamak için bu linker zorlama ilk çözüm içerir. Ikinci çözüm, soruna neden olan modülü bulmak ve düzeltmek için sağlar. Not Aşağıdaki adımlar, Visual C++ 6.0 temel alır. Bir çözüm: Bağlantı kitaplıkları doğru sırası Force Bağlayıcısı
Iki çözüm: Bulun ve modül sorunu için düzeltmeGeçerli kitaplığın bağlantı siparişini görüntülemek için <a0></a0>, aşağıdaki adımları izleyin:
DurumBu davranış tasarım yüzündendir. Daha fazla bilgiMFC kitaplıklarını kullandığınızda, CRT kitaplığı bağlı olduğu için önce bunlar bağlı emin olmanız gerekir. Her proje dosyasında Msdev\Mfc\Include\Afx.h içerdiğini sağlayarak bunu yapabilirsiniz (# include <Afx.h>) ilk, veya doğrudan veya dolaylı olarak (# include <Stdafx.h>). Afx.h dahil dosya zorlar doğru sırada kitaplıkların, # Pragma açıklama (lib, "<libname>") yönergesini kullanarak. Kaynak dosya .c uzantılıdır veya dosya bir .cpp uzantısına sahiptir, ancak MFC kullanın, oluşturabilir ve küçük üstbilgisini modülünün üstünde (Forcelib.h) dosyası. Bu yeni başlığı thelibrary arama sırası do?ru oldu?undan emin olur. Visual C++, bu üstbilgi dosyası içermiyor. Bu dosyayı oluşturmak için <a0></a0>, aşağıdaki adımları izleyin:
Visual C++ .NET sorunu yeniden oluşturma adımları
Bu makaledeki bilginin uygulandığı durum:
Otomatik 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:148652
(http://support.microsoft.com/kb/148652/en-us/
)
| Diğer Kaynaklar Diğer Destek Siteleri
ToplulukHemen Yardım AlMakale çevirileri
|






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


Üste