2009-02-16 3 views
0

У меня есть библиотека классов C#, которая содержит методы, которые необходимо использовать с внешним приложением. К сожалению, это внешнее приложение поддерживает только внешние API в C/C++.Импорт библиотеки классов C# в Visual C++

Предположим, у меня есть метод takeIntReturnDoubleArray в этой библиотеке C#, которая принимает целое число и возвращает массив удвоений. Все, что мне нужно сделать, это иметь C++-метод, который принимает целое число, вызывает библиотеку C# и возвращает массив двойников вызывающему приложению.

Итак, в сущности, библиотека C++ действует только как посредник между оболочкой C# и внешним приложением.

Есть ли простой способ сделать это? Должен ли я делать что-то особенное на стороне C#, чтобы он мог легко импортироваться в C++? Я видел некоторые разговоры об использовании инструкции #import, но я действительно не знаю, что я делаю, когда дело доходит до C++.

Каков подход, который я должен предпринять здесь?

ответ

4

У вас есть два основных варианта здесь:

  1. C++ \ CLI - это позволяет иметь управляемые и неуправляемого кода в том же исходном файле. Управляемая часть может затем вызвать код C#.
  2. COM Interop - выставляйте свой .NET-тип как COM-интерфейс и соответствующий класс, который вы можете легко использовать из неуправляемого C++.
+0

Я бы предпочел пойти с самым простым решением. Я считаю, что могу сохранить свой C++ как управляемый код. – Alex

+0

Я закончил с COM. Это было не приятно, но он получил работу. – Alex