Импорт библиотеки классов C # в Visual C ++ - PullRequest
0 голосов
/ 16 февраля 2009

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

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

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

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

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

Ответы [ 2 ]

4 голосов
/ 16 февраля 2009

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

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

COM Interop является одним из способов решения этой проблемы. Вам понадобится слой COM для функций библиотеки C #, которые вы хотите предоставить приложению C ++. Это (http://msdn.microsoft.com/en-us/library/aa302324.aspx#usingframeworktools_topic10) может представлять интерес.

...