Сборка C ++ / CLI может содержать собственный код, который имеет потенциал , чтобы быть более производительным, чем управляемый код. Однако переходы между нативным и управляемым кодом (обычно при вызове в нативный класс или нативный вызов API) включают в себя некоторые автоматически сгенерированные маршаллинг и упаковку, которые действительно могут поглотить некоторые циклы.
Что касается вашего второго вопроса, вы можете. Взгляните на / clr: pure .
Управляемые сборки и сборки в смешанном режиме являются DLL, но они расширили .NET метаданные . Чистые сборки MSIL просто не имеют собственного интерфейса (попробуйте dumpbin /exports C:\Windows\Microsoft.NET\Framework\v3.5\Microsoft.Build.Tasks.v3.5.dll
, затем ildasm
тот же файл).