2009-11-06 2 views
3

Я хотел бы использовать API, написанный на C++. Он включает в себя файлы заголовков и библиотеки. Как я могу использовать этот API в приложении C#?Использование C++ API в C#

ответ

5

Самый простой способ - написать сборку «прокладки» в C++/CLI. Это позволяет смешивать неуправляемый интерфейс и управляемый код вместе, чтобы вы могли «переводить» неуправляемый API в часть, которая потребляется в управляемом коде.

Есть много ресурсов, чтобы получить подробный обзор, см. C++/CLI Rationale, и для обсуждения вопросов взаимодействия попробуйте этот пост на .NET to C++ Bridge.

+0

+1 Это именно то, что я делал в прошлом. это сделало мою жизнь намного легче, тем более что управляемый C++ не так уж и трудный. –

2

Есть несколько вариантов для этого.

Самый простой, как Rob Walker mentioned, - использовать C++/CLI для создания управляемой оболочки.

Однако есть и другие варианты.

  1. Вы можете использовать SWIG для генерации C# оберток для API C++. Это работает достаточно хорошо, но это более сложный вариант. (Хорошо, если вы хотите также сделать другие языковые оболочки для вашего C++ API, тем не менее, поскольку вы можете делать C# /. NET, python, Java и т. Д. С помощью одного набора API.)

  2. Вы можете использовать Platform Invoke (P/Invoke) для доступа к вашей написанной на C++ DLL. Это намного проще, если у вас есть C API для вашей C++ DLL, но это возможно в противном случае.

Смежные вопросы