Используйте 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++ очень изобретает колесо.
1 ответ
По крайней мере, у вас есть 2 метода для вызова C/C++ API из.NET:
- Скомпилируйте API C / C++ как dll, затем используйте PInvoke для вызова из.NET
- Используйте Managed C++ (VC++), затем используйте IJW для переноса нативного кода, IJW будет генерировать управляемый код, который можно вызывать напрямую из.NET