если оба находятся в одном и том же процессе, попросите их «поговорить» друг с другом с помощью прямых средств. то есть прямой доступ к объектам. в противном случае переход через слой связи чрезвычайно дорог. То же самое можно сказать и о доступе к файлам на жестком диске через сетевой ресурс, когда файл, действительно загружаемый, скажем, c: \ foo \ something.txt более продуктивен.
c ++ позволяет создавать типы CLR, которые являются как собственным кодом, так и совместимым с CLR. использование этой техники позволяет вашему типу c ++ .NET, так сказать, из собственно .NET. ваши типы .NET не будут знать, что они вызывают c ++ или наоборот.
посмотрите настройки вашего компилятора c ++ для CLR