В рантайме Mono есть немало средств для взаимодействия с кодом на не .NET языках, но никогда не было ничего вменяемого для взаимодействия с кодом на C++.
Но это вскоре изменится благодаря работе Алекса Коррадо, Андрэа Гайта и Зольтана Варга.
Вкратце, новая технология позволяет разработчикам C#/.NET:
- Легко и прозрачно использовать классы C++ из C# или любого иного .NET языка
- Создавать экземпляры классов C++ из C#
- Вызывать методы классов C++ из кода на C#
- Вызывать инлайн-методы C++ из кода на C# (при условии, что библиотека скомпилирована с флагом -fkeep-inline-functions или если вы скомпилируете дополнительную библиотеку с их реализациями)
- Наследовать классы C++ из C#
- Переопределять виртуальные методы классов C++ методами на C#
- Использовать экземпляры таких смешанных C++/C# классов как в коде на C#, так и в коде на C++