Podpora knihovny pro smíšená sestavení
Visual C++ podporuje Standard C++ Library RunTime společné knihovny (CRT) ATL, a MFC aplikace kompilována s /clr (Common Language Runtime Compilation). To umožňuje existujícím aplikacím, které používají tyto knihovny, použít také funkcí rozhraní .NET Framework.
Tato podpora představuje následující nové knihovny DLL a knihovny importu:
Msvcmrt[d].lib pokud kompilujete s /clr. Smíšené sestavení odkazující na tuto knihovnu importu.
Msvcm90[d].dll a Msvcurt[d].lib, pokud kompilujete s /clr:pure. Knihovna DLL je kombinované sestavení poskytující podporu spravované knihovně CRT a je součástí spravovaného sestavení nainstalované v globální mezipaměti sestavení (global assembly cache (GAC)). Čisté sestavení odkazuje na tuto knihovnu importu a skončí vázán na Msvcm90.dll.
Tato podpora poskytuje několik souvisejících výhod:
Knihovna CRT a standardní knihovna C++ jsou k dispozici pro smíšený i čistý kód. Knihovna CRT a standardní knihovna C++ nejsou ověřitelné, nakonec jsou vaše volání stále směrovány do stejné knihovny CRT a standardní knihovny C++ jako když je používáte z nativního kódu.
Správné jednotné ošetření vyjímek v čistých a smíšených bitových kopiích.
Statická inicializace proměnných jazyka C++ v čistých a smíšených bitových kopiích.
Podpora pro proměnné na AppDomain a na proces ve spravovaném kódu.
Řeší problémy uzamknoutí zavaděče použitého pro smíšené knihovny DLL ve Visual C++ .NET a Visual C++ .NET 2003.
Kromě toho tato podpora představuje následující omezení:
Je podporován pouze model knihovny DLL CRT (pro kód kompilován pomocí /clr i /clr:pure).
Nelze kombinovat čisté a smíšené objekty v jedné bitové kopii pokud tyto objekty používají knihovny Visual C++ (protože všechny objekty musí být čisté v čisté bitové kopii). Pokud tak učiníte, zobrazí se chyby v době propojení.
Je třeba aktualizovat váš modul CLR na aktuální verzi, protože není zaručen běh s dřívějšími verzemi. Kód sestavený pomocí těchto změn se nespustí ve verzi CLR 1.x.