C#과 C++ 간의 상호 운용 방법을 찾는 과정에서 P/Invoke에 대해 설명하는 article을 발견했습니다.C++ 및 C# 상호 운용성 : P/Invoke vs C++/CLI
그리고 나는 C++/CLI가 정확한 C++가 아니며 원래의 C++ 코드를 수정하려고 노력해야한다고 주장하는 기사를 많이 읽었습니다.
C# 개체에서 사용할 C++ 개체 (코드/데이터)가있을 때 최적의 방법이 무엇인지 물어보고 싶습니다.
- P/Invoke를 사용하려면 C 스타일 API를 제공해야합니다. 사실입니까? 내 말은, P/Invoke를 사용하여 SWIG처럼 C++ 객체를 C#으로 내보내는 방법이 있습니까? 또는이 목적으로 SWIG를 사용해야합니까?
- C++에서 C++/CLI로 변경하는 것이 얼마나 어렵습니까? C#을 C++로 다시 작성하는 것과 비교해 볼 가치가 있습니까? C++은 잘 설계되어 있으므로 C#으로 구현하는 것은 그리 큰 문제가 아닙니다.
- (주제 끄기 질문) 다른 방법이 있습니까? C++에서 C# 코드를 사용하고 싶다면 그렇게 할 방법이 있습니까?
+1 절대적으로. 일반적으로 기존 C++ 코드를 수정하지 않아도됩니다. –