Используйте C ++ API в C # Project

Можно ли использовать C ++ API (серии файлов заголовков и файлов CPP) в проекте C #?

Возможно, возможно скомпилировать эти файлы в .obj или же .lib файлы и включить их в проект Visual C #? Нечто подобное сделано для Crypto++,

Если это возможно, есть ли какие-либо недостатки от этого?

Контекст и информация импорта:

  • C ++ API называется NWCreate и разработан Autodesk Navisworks.
  • Я использую Microsoft Visual Studio C # 2010
  • У нас есть большая база кода в C #, где большая часть операций, которые мы будем выполнять в плагине navisworks, уже написана на C # (из других проектов Autodesk, которые мы создали). Таким образом, необходимость переписывать все эти операции в C ++ очень изобретает колесо.

0

Решение

по крайней мере, у вас есть 2 метода для вызова C / C ++ API из .NET:

  • Скомпилируйте C / C ++ API как dll, затем используйте PInvoke для вызова из .NET
  • Используйте Managed C ++ (VC ++), затем используйте IJW для переноса нативного кода, IJW будет генерировать управляемый код, который можно вызывать напрямую из .NET
1

Другие решения