Sdílet prostřednictvím


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.

Viz také

Koncepty

Smíšená (nativní a spravovaná) sestavení