Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
MFC Kitaplığı, ANSI tek baytlı ve çok baytlı karakter kümesi (MBCS) kodunu destekleyen sürümlerin yanı sıra Unicode (UTF-16LE olarak kodlanmış, Windows'un yerel karakter kümesi) sürümlerini destekleyen sürümlerde kullanılabilir. Her MFC sürümü statik kitaplık veya paylaşılan DLL olarak kullanılabilir. Boyutuna çok duyarlı olan ve bu denetimlere gerek duymayan uygulamalar için iletişim kutuları için MFC denetimlerini dışarıda bırakan daha küçük bir MFC statik kitaplık sürümü de vardır. MFC kitaplıkları x86, x64 ve ARM işlemcileri içeren desteklenen mimariler için hem hata ayıklama hem de sürüm sürümlerinde kullanılabilir. MFC kitaplıklarının herhangi bir sürümüyle hem uygulamalar (.exe dosyaları) hem de DLL'ler oluşturabilirsiniz. Yönetilen kodla birlikte çalışmak için derlenmiş bir MFC kitaplıkları kümesi de vardır. MFC paylaşılan DLL'leri, kitaplık ikili uyumluluğunu belirtmek için bir sürüm numarası içerir.
MFC kitaplık sürümlerini otomatik bağlama
MFC üst bilgi dosyaları, derleme ortamınızda tanımlanan değerlere göre bağlanılacak MFC kitaplığının doğru sürümünü otomatik olarak belirler. MFC üst bilgi dosyaları, bağlayıcıya MFC kitaplığının belirli bir sürümünde bağlanmasını belirten derleyici yönergeleri ekler.
Örneğin, AFX.H header dosyası, bağlayıcıya, derleme yapılandırmanıza bağlı olarak MFC'nin tam statik, sınırlı statik veya paylaşılan DLL sürümünü; ANSI/MBCS veya Unicode sürümünü; ve hata ayıklama veya perakende sürümünü bağlaması için talimat verir.
#ifndef _AFXDLL
#ifdef _AFX_NO_MFC_CONTROLS_IN_DIALOGS
#ifdef _DEBUG
#pragma comment(lib, "afxnmcdd.lib")
#else
#pragma comment(lib, "afxnmcd.lib")
#endif
#pragma comment(linker, "/include:__afxNoMFCControlSupportInDialogs")
#pragma comment(linker, "/include:__afxNoMFCControlContainerInDialogs")
#endif
#ifndef _UNICODE
#ifdef _DEBUG
#pragma comment(lib, "nafxcwd.lib")
#else
#pragma comment(lib, "nafxcw.lib")
#endif
#else
#ifdef _DEBUG
#pragma comment(lib, "uafxcwd.lib")
#else
#pragma comment(lib, "uafxcw.lib")
#endif
#endif
#else
#ifndef _UNICODE
#ifdef _DEBUG
#pragma comment(lib, "mfc" _MFC_FILENAME_VER "d.lib")
#pragma comment(lib, "mfcs" _MFC_FILENAME_VER "d.lib")
#else
#pragma comment(lib, "mfc" _MFC_FILENAME_VER ".lib")
#pragma comment(lib, "mfcs" _MFC_FILENAME_VER ".lib")
#endif
#else
#ifdef _DEBUG
#pragma comment(lib, "mfc" _MFC_FILENAME_VER "ud.lib")
#pragma comment(lib, "mfcs" _MFC_FILENAME_VER "ud.lib")
#else
#pragma comment(lib, "mfc" _MFC_FILENAME_VER "u.lib")
#pragma comment(lib, "mfcs" _MFC_FILENAME_VER "u.lib")
#endif
#endif
#endif
MFC üst bilgi dosyaları MFC kitaplıkları, Win32 kitaplıkları, OLE kitaplıkları, örneklerden oluşturulan OLE kitaplıkları, ODBC kitaplıkları vb. dahil olmak üzere tüm gerekli kitaplıklarda bağlantı kurulacak yönergeleri de içerir.
ANSI, MBCS ve Unicode
MFC ANSI/MBCS kitaplık sürümleri hem ASCII gibi tek baytlı karakter kümelerini hem de Shift-JIS gibi çok baytlı karakter kümelerini destekler. MFC Unicode kitaplık sürümleri, UTF-16LE geniş karakter kodlanmış biçiminde Unicode'u destekler. UTF-8 kodlanmış Unicode desteği için MFC'nin ANSI/MBCS kitaplık sürümlerini kullanın.
Proje yapılandırmanızı IDE'de tek bayt, çok baytlı veya geniş karakterli Unicode dizesi ve karakter desteği kullanacak şekilde ayarlamak için Proje Özellikleri iletişim kutusunu kullanın. Yapılandırma Özellikleri>Genel sayfasında, Tek baytlık bir karakter kümesi kullanmak için Karakter Kümesi özelliğini Ayarlanmadı olarak ayarlayın. Çok baytlı karakter kümesi kullanmak için Çok Baytlı Karakter Kümesi Kullan veya UTF-16 olarak kodlanmış Unicode kullanmak için Unicode Karakter Kümesi Kullan özelliğini ayarlayın.
MFC projeleri, UTF-16 geniş karakterli Unicode desteğini belirtmek için ön işlemci sembolünü _UNICODE ve MBCS desteğini belirtmek için _MBCS kullanır. Bu seçenekler bir projede birbirini dışlar.
MFC statik kitaplık adlandırma kuralları
MFC için statik kitaplıklar aşağıdaki adlandırma kurallarını kullanır. Kitaplık adları belirli bir formda olur.
uAFXcd. LİB
burada italik küçük harfle gösterilen harfler, anlamları aşağıdaki tabloda gösterilen tanımlayıcılar için yer tutuculardır:
Belirticisi | Değerler ve anlamlar |
---|---|
u | ANSI/MBCS (N) veya Unicode (U); iletişim kutularında MFC denetimleri bulunmayan sürüm için hariç tut |
c | Diyalog kutularında MFC denetimlerini içeren (CW) veya içermeyen (NMCD) sürüm |
d | Hata Ayıklama veya Yayın: D=Hata Ayıklama; Yayın için tanımlayıcıyı atlayın |
Aşağıdaki tabloda listelenen tüm kitaplıklar desteklenen derleme mimarileri için \atlmfc\lib dizininde önceden oluşturulmuş olarak bulunur.
Kütüphane | Açıklama |
---|---|
NAFXCW. LİB | MFC Static-Link Kitaplığı, Sürüm sürümü |
NAFXCWD. LİB | MFC Static-Link Kitaplığı, Hata Ayıklama sürümü |
UAFXCW. LİB | Unicode desteğine sahip MFC Static-Link Kitaplığı, Sürüm sürümü |
UAFXCWD. LİB | Unicode desteğine sahip MFC Static-Link Kitaplığı, Hata ayıklama sürümü |
AFXNMCD. LİB | MFC iletişim kutusu denetimleri olmayan MFC Static-Link Kitaplığı, Sürüm sürümü |
AFXNMCDD. LİB | MFC iletişim kutusu denetimleri olmadan MFC Static-Link Kütüphanesi, Hata ayıklama sürümü |
Statik kitaplıkların her biri için aynı temel ada ve .pdb uzantısına sahip hata ayıklayıcı dosyaları da kullanılabilir.
MFC'nin paylaşılan DLL adlandırma kuralları
MFC paylaşılan DLL'leri de yapılandırılmış bir adlandırma kuralına uyar. Bu, hangi DLL veya kitaplığı hangi amaçla kullanmanız gerektiğini öğrenmenizi kolaylaştırır.
MFC DLL'leri, ikili uyumluluğu gösteren sürüm numaralarına sahiptir. Proje içinde uyumluluğu garanti etmek için diğer kitaplıklarınızla ve derleyici araç takımınızla aynı sürüme sahip MFC DLL'lerini kullanın.
DLL | Açıklama |
---|---|
MFCsürümü.DLL | MFC DLL, ANSI veya MBCS Çıkış sürümü |
MFCsürümU.DLL | MFC DLL, Unicode Sürüm sürümü |
MFCsürümD.DLL | MFC DLL, ANSI veya MBCS Hata Ayıklama sürümü |
MFCsürümUD.DLL | MFC DLL, Unicode Hata Ayıklama sürümü |
MFCMsürümü.DLL | MFC DLL, Windows Forms denetimleri, ANSI veya MBCS Sürümü |
MFCMsürümU.DLL | Windows Forms denetimleriyle MFC DLL, Unicode Sürüm sürümü |
MFCMsürümD.DLL | MFC DLL, Windows Forms denetimleri içeren ANSI veya MBCS Hata Ayıklama sürümü. |
MFCMsürümUD.DLL | Windows Forms denetimlerine sahip MFC DLL, Unicode Hata Ayıklama versiyonu |
Bu paylaşılan DLL'leri kullanan uygulamaları veya MFC uzantısı DLL'lerini oluşturmak için gereken import kütüphaneleri, DLL ile aynı temel ada sahiptir, ancak dosya adı uzantısı .lib'dir. Paylaşılan DLL'leri kullandığınızda, küçük bir statik kitaplığın hala kodunuzla bağlantılı olması gerekir; bu kitaplığa MFCSsürümü{U}{D}.lib adı verilmiştir.
İster bir uygulamadan ister MFC uzantı DLL'sinden olsun MFC'nin paylaşılan DLL sürümüne dinamik olarak bağlanıyorsanız, ürününüzü dağıtırken eşleşen MFCsürümünü.DLL veya MFCsürümünüU.DLL eklemeniz gerekir.
Uygulamalarınızla dağıtabileceğiniz Visual C++ DLL'lerinin listesi için bkz. Microsoft Visual Studio 2017 ve Microsoft Visual Studio 2017 SDK'sı (Yardımcı Programlar ve BuildServer Dosyaları içerir)için Dağıtılabilir Kod veya Visual Studio 2019 için Dağıtılabilir Kod.
MFC'de MBCS ve Unicode desteği hakkında daha fazla bilgi için bkz. Unicode ve Çok Baytlı Karakter Kümesi (MBCS) Desteği.
Dinamik bağlantı kitaplığı desteği
Hem MFC hem de MFC olmayan yürütülebilir dosyalar tarafından kullanılabilecek DLL'ler oluşturmak için statik veya paylaşılan dinamik MFC kitaplıklarını kullanabilirsiniz. Bunlar yalnızca MFC uygulamaları ve MFC DLL'leri tarafından kullanılabilen MFC uzantısı DLL'lerinden ayırt etmek için "normal DLL'ler" veya "normal MFC DLL'leri" olarak adlandırılır. MFC DLL projeleri _USRDLL önişlemci sembolünü tanımladığından, MFC statik kitaplıkları kullanılarak oluşturulan dll bazen eski başvurularda USRDLL olarak adlandırılır. MFC paylaşılan DLL'lerini kullanan dll bazen eski başvurularda AFXDLL olarak adlandırılır çünkü ön işlemci sembolünü _AFXDLL tanımlar.
MFC statik kitaplıklarına bağlanarak DLL projenizi oluşturduğunuzda, DLL'niz MFC paylaşılan DLL'leri olmadan dağıtılabilir. DLL projeniz MFCsürüm.LIB veya MFCsürümU.LIB ithalat kitaplıklarına bağlandığında, eşleşen MFC paylaşılan DLL'yi, MFCsürüm.DLL veya MFCsürümU.DLL olarak DLL'nizle birlikte dağıtmanız gerekir. Daha fazla bilgi için bkz. DLL'ler.