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.
Uyarı
Etkin Şablon Kitaplığı (ATL) desteklenmeye devam eder. Ancak artık özellik eklemeyeceğiz veya belgeleri güncelleştirmeyeceğiz.
Bu makrolar belirli derleyici özelliklerini denetler.
| Makro | Açıklama |
|---|---|
_ATL_ALL_WARNINGS |
ATL'nin önceki sürümlerinden dönüştürülen projelerde hataları etkinleştiren bir simge. |
_ATL_APARTMENT_THREADED |
Nesnelerinizden birinin veya daha fazlasının apartman iş parçacığı kullanıp kullanmadığına bakın. |
_ATL_CSTRING_EXPLICIT_CONSTRUCTORS |
Bazı CString oluşturucuları açık hale getirir ve istenmeyen dönüştürmeleri önler. |
_ATL_ENABLE_PTM_WARNING |
Bu makro, C++ standart söz dizimi gerektirecek şekilde tanımlayın. Üye işlevinin işaretçisini başlatmak için standart olmayan söz dizimi kullanıldığında C4867 derleyici hatasını oluşturur. |
_ATL_FREE_THREADED |
Nesnelerinizden birinin veya daha fazlasının serbest veya nötr iş parçacığı kullanıp kullanmadığına bakın. |
_ATL_MODULES |
İzin veren ile ATL projelerini derlemenize ve ATL'yi C++ modülleriyle kullanmanıza olanak tanır. |
_ATL_MULTI_THREADED |
Projenin Her İkisi, Serbest veya Nötr olarak işaretlenmiş nesneleri olduğunu gösteren bir simge. Bunun yerine makro _ATL_FREE_THREADED kullanılmalıdır. |
_ATL_NO_AUTOMATIC_NAMESPACE |
Ad alanının ATL olarak varsayılan olarak kullanılmasını engelleyen bir simge. |
_ATL_NO_COM_SUPPORT |
COM ile ilgili kodun projenizle derlenmesini engelleyen bir simge. |
ATL_NO_VTABLE |
Vtable işaretçisinin sınıfın oluşturucusunda ve yıkıcısında başlatılmasını engelleyen bir simge. |
ATL_NOINLINE |
bir işlevin çizili olmaması gerektiğini gösteren simge. |
_ATL_SINGLE_THREADED |
Tüm nesnelerinizin tek iş parçacığı modelini kullanıp kullanmadığına bakın. |
_ATL_ALL_WARNINGS
ATL'nin önceki sürümlerinden dönüştürülen projelerde hataları etkinleştiren bir simge.
#define _ATL_ALL_WARNINGS
Açıklamalar
Visual C++ .NET 2002'den önce, ATL birçok uyarıyı devre dışı bıraktı ve kullanıcı kodunda hiç görünmemeleri için devre dışı bıraktı. Özellikle:
C4127 koşullu ifadesi sabittir
C4786 'identifier' : tanımlayıcı hata ayıklama bilgilerinde 'sayı' karakterlerine kesildi
C4201 standart olmayan uzantı kullanıldı: adsız yapı/birleşim
C4103 'filename' : hizalamayı değiştirmek için #pragma paketi kullanıldı
C4291 'bildirim' : eşleşen işleç silme bulunamadı; başlatma bir özel durum oluşturursa bellek boşaltılmaz
C4268 'identifier' : Derleyici tarafından oluşturulan varsayılan oluşturucu ile başlatılan 'const' statik/genel veriler nesneyi sıfırlarla doldurur
C4702 ulaşılamıyor kodu
Önceki sürümlerden dönüştürülen projelerde, bu uyarılar kitaplık üst bilgileri tarafından devre dışı bırakılmaya devam eder.
Bu davranışı değiştirmek için kitaplık üst bilgilerini eklemeden önce (pch.h Visual Studio 2017 ve önceki sürümlerde) dosyasına aşağıdaki satırı stdafx.h ekleyin.
#define _ATL_ALL_WARNINGS
Bu #define eklenirse, ATL üst bilgileri genel olarak devre dışı bırakılmamaları için bu uyarıların durumunu korumaya dikkat eder (veya kullanıcı uyarıları etkinleştirmek için değil, açıkça devre dışı bırakırsa).
Yeni projelerde bu #define ayar varsayılan olarak pch.h 'de (Visual Studio 2017 ve önceki sürümlerde stdafx.h) bulunur.
_ATL_APARTMENT_THREADED
Nesnelerinizden birinin veya daha fazlasının apartman iş parçacığı kullanıp kullanmadığına bakın.
_ATL_APARTMENT_THREADED
Açıklamalar
Daire iş parçacığını belirtir. Diğer seçenekler ve ATL nesnesi için kullanılabilen iş parçacığı oluşturma modellerinin açıklaması için bkz . Projenin İş Parçacığı Modeli ve Seçeneklerini Belirtme, ATL Basit Nesne Sihirbazı.
_ATL_CSTRING_EXPLICIT_CONSTRUCTORS
Bazı CString oluşturucuları açık hale getirir ve istenmeyen dönüştürmeleri önler.
_ATL_CSTRING_EXPLICIT_CONSTRUCTORS
Açıklamalar
Bu oluşturucu tanımlandığında, tek bir parametre alan tüm CString oluşturucular, giriş bağımsız değişkenlerinin örtük dönüştürmelerini engelleyen açık anahtar sözcükle derlenir. Bu, örneğin tanımlandığında _UNICODE , bir char* dizeyi oluşturucu bağımsız değişkeni olarak CString kullanmayı denerseniz derleyici hatasının sonucu olduğu anlamına gelir. Bu makro, dar ve geniş dize türleri arasında örtük dönüştürmeleri önlemeniz gereken durumlarda kullanın.
Makroyu _T tüm oluşturucu dize bağımsız değişkenlerinde kullanarak, tanımlanıp tanımlanmadığına _ATL_CSTRING_EXPLICIT_CONSTRUCTORS bakılmaksızın derleme hataları tanımlayabilir _UNICODE ve önleyebilirsiniz.
_ATL_ENABLE_PTM_WARNING
Üye işlevleri işaretçisi için ANSI C++ standart uyumlu söz diziminin kullanılmasını zorlamak için bu makroyu tanımlayın. Bu makronun kullanılması, üye işlevine işaretçi başlatmak için standart olmayan söz dizimi kullanıldığında C4867 derleyici hatasının oluşturulmasına neden olur.
#define _ATL_ENABLE_PTM_WARNING
Açıklamalar
ATL ve MFC kitaplıkları, Microsoft C++ derleyicisinin geliştirilmiş standart C++ uyumluluğuyla eşleşecek şekilde değiştirildi. ANSI C++ standardına göre, bir sınıf üyesi işlevinin işaretçisinin söz dizimi olmalıdır &CMyClass::MyFunc.
Tanımlanmadığında _ATL_ENABLE_PTM_WARNING (varsayılan durum), ATL/MFC makro eşlemelerinde C4867 hatasını (özellikle ileti eşlemeleri) devre dışı bırakır, böylece önceki sürümlerde oluşturulan kod daha önce olduğu gibi derlenebilir. tanımlarsanız _ATL_ENABLE_PTM_WARNINGkodunuz C++ standardına uygun olmalıdır.
Ancak, standart olmayan form kullanım dışı bırakıldı. Mevcut kodu C++ standart söz dizimine taşımanız gerekir. Örneğin aşağıdaki kod:
BEGIN_MESSAGE_MAP(CMFCListViewDoc, CDocument)
ON_COMMAND(ID_MYCOMMAND, OnMycommand)
END_MESSAGE_MAP()
Şöyle değiştirilmelidir:
BEGIN_MESSAGE_MAP(CMFCListViewDoc, CDocument)
ON_COMMAND(ID_MYCOMMAND, &CMFCListViewDoc::OnMycommand)
END_MESSAGE_MAP()
Eşleme makroları için ve '&' karakterini ekleyin. Karakteri kodunuza yeniden eklememelisiniz.
_ATL_FREE_THREADED
Nesnelerinizden birinin veya daha fazlasının serbest veya nötr iş parçacığı kullanıp kullanmadığına bakın.
_ATL_FREE_THREADED
Açıklamalar
Boş iş parçacığını belirtir. Ücretsiz iş parçacığı oluşturma, çok iş parçacıklı bir apartman modeline eşdeğerdir. AtL nesnesi için kullanılabilen iş parçacığı modellerinin açıklaması için bkz . Diğer iş parçacığı oluşturma seçenekleri için Projenin İş Parçacığı Modelini Belirtme ve Seçenekler, ATL Basit Nesne Sihirbazı .
_ATL_MODULES
ATL projelerini C++ modülleriyle permissive-derlemenize ve ATL'yi kullanmanıza olanak tanır.
_ATL_MODULES
_ATL_MULTI_THREADED
Projenin Her İkisi, Serbest veya Nötr olarak işaretlenmiş nesneleri olduğunu gösteren bir simge.
_ATL_MULTI_THREADED
Açıklamalar
Bu simge tanımlanmışsa, ATL genel verilere erişimi doğru şekilde eşitleyecek kodu çeker. Yeni kod bunun yerine eşdeğer makroyu _ATL_FREE_THREADED kullanmalıdır.
_ATL_NO_AUTOMATIC_NAMESPACE
Ad alanının ATL olarak varsayılan olarak kullanılmasını engelleyen bir simge.
_ATL_NO_AUTOMATIC_NAMESPACE
Açıklamalar
Varsayılan olarak gerçekleştirilenler atlbase.h de dahil olmak üzere using namespace ATL bu simge tanımlanmamışsa adlandırma çakışmalarına yol açabilir. Bunu önlemek için bu simgeyi tanımlayın.
_ATL_NO_COM_SUPPORT
COM ile ilgili kodun projenizle derlenmesini engelleyen bir simge.
_ATL_NO_COM_SUPPORT
ATL_NO_VTABLE
Vtable işaretçisinin sınıfın oluşturucusunda ve yıkıcısında başlatılmasını engelleyen bir simge.
ATL_NO_VTABLE
Açıklamalar
Vtable işaretçisinin sınıfın oluşturucusunda ve yıkıcısında başlatılması engellenirse, bağlayıcı vtable'ı ve işaret ettiği tüm işlevleri ortadan kaldırabilir. olarak __declspec(novtable)genişletir.
Örnek
class ATL_NO_VTABLE CMyClass2 :
ATL_NOINLINE
bir işlevin çizili olmaması gerektiğini gösteren simge.
ATL_NOINLINE inline
myfunction()
{
...
}
Parametreler
myfunction
Çizili olmaması gereken işlev.
Açıklamalar
Üst bilgi dosyasına yerleştirilebilmesi için satır içi olarak bildirilmesi gerekse bile, bir işlevin derleyici tarafından satır içi olarak bildirilmediğinden emin olmak istiyorsanız bu simgeyi kullanın. olarak __declspec(noinline)genişletir.
_ATL_SINGLE_THREADED
Tüm nesnelerinizin tek iş parçacığı modelini kullanıp kullanmadığına ilişkin tanımlama
_ATL_SINGLE_THREADED
Açıklamalar
Nesnenin her zaman birincil COM iş parçacığında çalıştırıldığını belirtir. AtL nesnesi için kullanılabilen iş parçacığı modellerinin açıklaması için bkz . Diğer iş parçacığı oluşturma seçenekleri için Projenin İş Parçacığı Modelini Belirtme ve Seçenekler, ATL Basit Nesne Sihirbazı .