Вы можете использовать «нормальные» C-API через так называемые вызовы P / Invoke («Платформа Invoke»). Это включает в себя как Windows API, так и другие библиотеки, которые экспортируют обычные вызовы функций. Однако я не знаю, какие библиотеки C ++ возвращают объекты. Это может быть сложнее ...?
В Windows вы всегда можете создать свою .NET DLL так, чтобы ее можно было зарегистрировать как библиотеку COM. Затем вы можете использовать открытые классы .NET, как и любой другой COM-объект из любого языка, который поддерживает использование COM-объектов (например, VB6, Delphi, C ++ и т. Д.).
Это, однако, не работает в Windows Mobile!
Итак:
Использовать C-API из C # на любой платформе - да, нет проблем, научитесь P / Invoke
Использовать C # DLL из C ++ в Windows - да, нужно создавать COM-объекты
Использование C # DLL из C ++ в Windows Mobile - AFAIK, который не работает