Ваша путаница понятна, но ваше понимание ошибочно.
Нет никакой разницы между C ++ и использованием MFC, MFC - это структура классов, написанная на C ++, как и любой другой код, который вы могли бы написать на C ++.Это просто инфраструктура, которую Microsoft предоставляет со своим продуктом.
C ++ / CLI (не CLR) на самом деле не C ++.Это язык C ++, который компилируется в байт-код .net IL.Он имеет много ограничений и имеет те же ограничения, что и C #, VB.NET и другие языки .NET.Это очень похоже на C ++, но не совсем то же самое.
Приложения C ++ / CLI компилируются в байт-код .net IL, поэтому они ничем не отличаются от приложений C #.Фактически, практически любой язык, основанный на .net, будет компилироваться в один и тот же байт-код и использовать те же фреймворки.
Являются ли программы на C # или C ++ / CLI «более медленными», не так ясно.Слишком много энтузиастов C ++ увековечивают миф о том, что управляемый код работает медленно.Это не.Некоторые вещи работают медленно, например, запускать его в первый раз (он должен компилировать код по требованию), но, поскольку .NET Jitter (только компилятор времени) может оптимизировать код для платформы, на которой он работает, он пришел, чтобы сделать кодработать лучше.
Конечно, управляемый код также имеет сборку мусора, что очень удобно, но может вызвать проблемы с производительностью в некоторых ситуациях.Но это не каждая ситуация и даже не большинство ситуаций.