Можно ли использовать 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
Другие решения