Podczas wyszukiwania sposobu na współdziałanie C# i C++ znalazłem ten article, który wyjaśnia o P/Invoke.Współdziałanie C++ i C#: P/Invoke vs C++/CLI
I czytam dużo artykułów twierdzących, że C++/CLI nie jest dokładnym C++ i wymaga pewnego wysiłku, aby zmodyfikować z oryginalnego kodu C++.
Chcę zapytać, jaki byłby optymalny sposób, gdy mam niektóre obiekty C++ (kod/dane), które chcę użyć z obiektów C#.
- Wygląda na to, że aby korzystać z P/Invoke, powinienem zapewnić interfejs API w stylu C. Czy to prawda? Mam na myśli, czy istnieje sposób na eksport obiektu C++ do C# jak SWIG z P/Invoke? Czy muszę użyć SWIG do tego celu?
- Jak trudno zmienić C++ na C++/CLI? Czy warto próbować w porównaniu do przepisywania C++ na C#? C++ jest dobrze zaprojektowany, więc implementacja go do C# nie jest świetną okazją.
- (Wyłącz pytanie do tematu) Czy istnieje odwrotnie? Mam na myśli, jeśli chcę użyć C# kod z C++, czy jest jakiś sposób to zrobić?
+1 bezwzględnie. Zazwyczaj nie jest konieczna modyfikacja istniejącego kodu C++. –