Компилятор C ++ / CLI поддерживает генерацию как машинного кода, так и IL.Он сгенерирует машинный код для любого кода, скомпилированного без действующего / clr, или функций, заключенных в скобки с управляемыми #pragma (push, off) и #pragma managed (pop).Или функции, которые должны быть скомпилированы в машинный код, потому что они содержат код, который нельзя преобразовать в IL.Как _asm, обратите внимание на предупреждение C4793, которое вы получили за первый фрагмент.Подавить предупреждение с помощью #pragma удалось.Такой код, конечно, не может использовать управляемые типы.
Единица генерации кода - это функция.То, что не может работать, - это функция, которая нуждается в обоих.Ваша функция main () должна быть скомпилирована в IL, потому что она использует управляемые типы.Функция не будет встроена, конечно.