Сборка нативного c ++ для использования в качестве библиотеки .net

У меня есть исходный код функциональности c ++, который мне нравится.

Какие усилия / работа требуются / требуются для того, чтобы ссылаться на это из приложения .net или создавать этот код как сборку .net (предпочтительно c #)?

Это моя первая попытка портирования кода, поэтому, пожалуйста, подробно изложите свой ответ для меня.

1

Решение

Есть несколько способов сделать это.

  1. PInvoke
  2. Создайте оболочку C ++ / CLI вокруг собственного кода C ++ (сделайте статическую библиотеку из собственного кода C ++), и сгенерированную сборку C ++ / CLI можно легко использовать в приложении .net.
  3. COM, т.е. с использованием взаимодействия (что сложно среди всех вариантов)

В моем предложении проще всего использовать вариант 2, но вам нужно позаботиться о правильном маршалинге.

5

Другие решения

Решение А:

  1. Если у вас есть исходный код, то скомпилируйте программу CPP в виде файла DLL.
  2. Используйте P / Invoke

Решение B (если нужная вам функциональность находится в статической библиотеке):

  1. Создайте заглушку функции-заглушки и скомпилируйте ТО как DLL
  2. То же, что и решение A.2
3