Подтвердить что ты не робот

Использование С# dll в коде C++

Мне нужно интегрировать эту С# dll в мой код C++. Я хочу вызвать некоторые функции, написанные на С# из dll, а остальная часть кода записывается в C++. Какой самый простой и быстрый способ сделать это? Программа будет выполняться только в Windows.

4b9b3361

Ответ 1

В основном есть два случая вызова.NET DLL из неуправляемого кода:

  1. .NET DLL предоставляет COM-интерфейс. В этом случае вы можете использовать COM из вашего кода C++.
  2. .NET DLL не предоставляет интерфейс COM. В этом случае у вас есть две возможности (упростить):

    2.а разместить CLR, как описано здесь: Загрузка исполняемого файла Common Language в процесс
    2.b. напишите часть управляемого кода C++ (другая DLL - написанная в C++/CLI), чтобы обернуть.NET DLL и выставить экспорт DLL "старого пути" неуправляемым клиентам.

Я специально не знаю систему sharpbox, но она выглядит как чистая.NET и не предоставляет COM-интерфейсы, поэтому лучший способ сделать это может 2.b (не так просто...). Возможно, у него есть API-интерфейс REST/Web, который вы можете использовать.

PS: вы также можете добавить экспорт в.NET DLL. Это описано здесь: Возможно ли экспортировать функции из DLL С#, как в VS C++? но это вроде хаки.