Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Ez a témakör a C++/WinRT konfigurációs makrókat ismerteti. Ha másként nem jelezzük, ezek a szabályok az összes C++/WinRT konfigurációs makróra vonatkoznak:
- Minden olyan fájlnak azonos makróbeállításokkal kell rendelkeznie, amelyek egyetlen modul (
.exevagy.dll) létrehozásához vannak összekapcsolva. Ez magában foglalja a statikus kódtárakat is. - A C++/WinRT fejlécfájl felvétele előtt minden makróbeállításnak be kell fejeződnie.
- A C++/WinRT fejlécfájl felvétele után nem módosíthatja a makróbeállításokat.
WINRT_LEAN_AND_MEAN
Ha meg van adva, letiltja ezeket a ritkán használt funkciókat (a fordítási idő csökkentése érdekében):
- Az összetevőn kívüli kizárólagos interfészek implementálása.
- std::hash specializációi interfész- és futásidejűosztály-intelligens mutatókhoz.
- A 2.0.221101.3-as verzió óta támogatja a Hstringing vagy az IStringable közvetlen kimenetét egy C++ streamen.
Összevonhat különböző WINRT_LEAN_AND_MEAN-beállításokkal rendelkező fájlokat.
Azok a fájlok, amelyek nem definiálják WINRT_LEAN_AND_MEAN hozzáférést kapnak a ritkán használt funkciókhoz.
WINRT_NO_MODULE_LOCK
Ha meg van adva, letiltja az aktuális modul objektumainak számát. A modul soha nem kerül eltávolításra a folyamatból. Szokás definiálni ezt a makrót a végrehajtható programokhoz (amelyek soha nem tölthetők ki a memóriából), illetve azokhoz a .dll-okhoz, amelyeket rögzítve kíván hagyni. Nem kombinálható a(z) WINRT_CUSTOM_MODULE_LOCK elemmel.
WINRT_CUSTOM_MODULE_LOCK
Ha meg van adva, lehetővé teszi a winrt::get_module_lock saját implementációjának biztosítását. Nem használható együtt a(z) WINRT_NO_MODULE_LOCK elemmel.
A winrt::get_module_lock egyéni implementációjának támogatnia kell a következő műveleteket:
-
++winrt::get_module_lock(): Növelje a modulzár hivatkozásainak számát. -
--winrt::get_module_lock(): Csökkentse a modulzár hivatkozásszámát. -
if (winrt::get_module_lock()): Ellenőrizze, hogy a referenciaszámláló nem nulla-e. (DLL létrehozása esetén szükséges.)
WINRT_ASSERT, WINRT_VERIFY
Ezek a makrók lehetővé teszik az assertkezelés testreszabását. WINRT_ASSERT nincs szükség az argumentum kiértékelésére. WINRT_VERIFY megköveteli az argumentum kiértékelését, még a nem hibakeresési buildekben is.
Ha nem szabja testre ezeket a makrókat, és _DEBUG van definiálva, akkor a C++/WinRT a _ASSERTE egyenértékűvé teszi őket.
Ha nem szabja testre ezeket a makrókat, és nincs definiálva a _DEBUG, akkor a C++/WinRT úgy definiálja a WINRT_ASSERT makrót, hogy a kifejezést kiértékelés nélkül eldobja, a WINRT_VERIFY makrót pedig úgy, hogy a kifejezést a kiértékelése után dobja el.
WINRT_NO_MAKE_DETECTION
Ha meg van adva, letiltja az alapértelmezett C++/WinRT diagnosztikát, amely azt észleli, hogy tévedésből létrehozott egy implementációs osztályt a winrt::make használata nélkül.
Határozottan javasoljuk, hogy ne definiálja ezt a szimbólumot, mert ezzel elfedi a programozási hibák gyakori forrását.
WINRT_NO_SOURCE_LOCATION
Ha meg van határozva, letiltja a forrásfájl- és sorinformációk (hibakeresési buildek esetén a függvényinformációk) belefoglalását a hibák létrehozásakor.
Ezt a további információt a C++/WinRT nem használja, de más olyan kódtárak számára is elérhetővé teszi, amelyek C++/WinRT-kivételekkel szeretnének együttműködni, például a Windows implementációs kódtárban.
Alapértelmezés szerint az információk C++20 vagy újabb módban történő fordításkor jelennek meg. Előfordulhat, hogy a bináris méret csökkentése érdekében el szeretné tiltani ezeket az információkat.
WINRT_DIAGNOSTICS
Ha meg van adva, lehetővé teszi a belső statisztikák számára a különböző műveletek nyomon követését:
- Az egyes felületek lekérdezéseinek száma.
- Az egyes gyárak kérésének száma (és hogy a gyár agilis-e).
WINRT_NATVIS
Ha meg van adva, az Visual Studio natív hibakeresési vizualizációinak segítséget nyújtó segédfüggvényeket tartalmaz. A kódot futásidőben nem használja a rendszer; csak hibakereséshez létezik.
Ha nem szabja testre ezt a makrót, akkor a vizualizációt támogató függvények engedélyezve vannak, ha a _DEBUG definiálva van. További információ: Visual Studio C++/WinRT natív hibakeresési vizualizációja (natvis).
Összevonhatja azokat a fájlokat, amelyekhez a WINRT_NATVIS különböző beállításai tartoznak.
Ha bármelyik fájlt WINRT_NATVIS támogatással fordítják le, az eredményül kapott modulban engedélyezve lesznek a natív hibakeresési vizualizációk.
WINRT_EXPORT, WINRT_FAST_ABI_SIZE
Ne használja ezeket a makrókat.
Windows developer