Assemblys mixtes (natif et managé)
Les assemblys mixtes sont capables de contenir à la fois des instructions machine non managées et des instructions MSIL. Cela leur permet d'appeler et d'être appelés par des composants .NET, tout en restant compatibles avec des composants totalement non managés. Grâce aux assemblys mixtes, les développeurs peuvent créer des applications utilisant un mélange de fonctionnalités managées et non managées. Les assemblys mixtes conviennent parfaitement pour faire migrer les applications Visual C++ existantes vers la plateforme .NET.
Par exemple, une application existante entièrement composée de fonctions non managées peut être portée sur la plateforme .NET en recompilant simplement un unique module à l'aide du commutateur de compilation /clr. Ce module est alors capable d'utiliser des fonctionnalités .NET, mais reste compatible avec le reste de l'application. Ainsi, une application peut être convertie vers la plateforme .NET de façon graduelle et par tranches. Il est même possible de choisir fonction par fonction une compilation managée ou non managée dans le même fichier (consultez managé, non managé).
Visual C++ prend en charge la génération de trois types distincts d'assemblys managés : mixtes, purs et vérifiables. Les deux derniers sont traités dans Code pur et vérifiable (C++/CLI).
Dans cette section
Comment : effectuer une migration vers /clr
Décrit les étapes recommandées pour introduire ou mettre à niveau des fonctionnalités .NET dans votre application.Comment : compiler du code MFC et ATL à l'aide de /clr
Explique comment compiler des programmes MFC et ATL existants pour cibler le Common Language Runtime.Initialisation d'assemblys mixtes
Décrit le problème dit du « verrouillage de chargeur » et ses solutions.Prise en charge de bibliothèque pour les assemblys mixtes
Traite de la façon d'utiliser des bibliothèques natives dans les compilations /clr.Considérations sur les performances de l'interopérabilité (C++)
Décrit les conséquences des assemblys mixtes et du marshaling de données sur les performances.Domaines d'application et Visual C++
Traite de la prise en charge par Visual C++ des domaines d'application.Double conversion de code (thunking) (C++)
Traite des conséquences, en termes de performances, de l'utilisation d'un point d'entrée natif pour une fonction managée.Éviter des exceptions à l'arrêt du CLR lors de l'utilisation d'objets COM générés avec /clr
Traite de la façon de garantir l'arrêt correct d'une application managée qui consomme un objet COM compilé avec /clr.Comment : créer une application partiellement approuvée en supprimant la dépendance de la DLL de la bibliothèque CRT
Explique comment créer une application du Common Language Runtime de niveau de confiance partiel à l'aide de Visual C++ en supprimant la dépendance vis-à-vis de msvcm90.dll.
Pour plus d'informations sur les conventions de codage des assemblys mixtes, consultez l'article MSDN « Une présentation de l'interopérabilité de code managé/non managé » via https://msdn.microsoft.com/netframework/default.aspx?pull=/library/dndotnet/html/manunmancode.asp.