В ходе поиска способа взаимодействия между С# и С++ я нашел эту статью которая объясняет P/Invoke.
И я прочитал много статей, утверждая, что С++/CLI не является точным С++ и требует некоторых усилий для изменения исходного кода на С++.
Я хочу спросить, что было бы оптимальным способом, когда у меня есть некоторые объекты С++ (код/данные), которые я хочу использовать из объектов С#.
- Похоже, что для использования P/Invoke я должен предоставить API стиля C. Это правда? Я имею в виду, есть ли способ экспортировать объект С++ в С#, например, SWIG с P/Invoke? Или мне нужно использовать SWIG для этой цели?
- Насколько сложно сменить С++ на С++/CLI? Стоит ли пытаться переписать С++ на С#? С++ хорошо разработан, поэтому реализовать его на С# не так уж много.
- (С вопросом темы) Есть ли другой способ? Я имею в виду, если я хочу использовать код С# из С++, есть ли способ сделать это?