2009-11-06 2 views
3

C++로 작성된 API를 사용하고 싶습니다. 여기에는 헤더 파일과 라이브러리가 포함됩니다. C# 응용 프로그램에서이 API를 어떻게 사용할 수 있습니까?C#에서 C++ API 사용

답변

5

가장 쉬운 방법은 C++/CLI에 'shim'어셈블리를 쓰는 것입니다. 이를 통해 관리되지 않는 인터페이스와 관리 코드를 함께 사용하여 관리되지 않는 API를 관리 코드에서 사용할 수있는 API로 '변환'할 수 있습니다.

많은 리소스가 있습니다. 자세한 내용은 C++/CLI Rationale을 참조하고 interop 문제는 .NET to C++ Bridge에 게시하십시오.

+0

+1 이것은 정확히 내가 과거에해온 것입니다. 특히 C++ 관리가 그렇게 어렵지 않기 때문에 내 삶을 훨씬 쉽게 만들어주었습니다. –

2

몇 가지 옵션이 있습니다.

가장 쉬운 방법은 Rob Walker mentioned으로 C++/CLI를 사용하여 관리되는 래퍼를 만드는 것입니다.

그러나 다른 옵션이 있습니다.

  1. SWIG을 사용하면 C++ API에 대한 C# 래퍼를 생성 할 수 있습니다. 이것은 적절하게 작동하지만 더 어려운 선택입니다. (한 세트의 API로 C#/.NET, Python, Java 등을 할 수 있기 때문에 C++ API에 다른 언어 래퍼를 만들고 싶다면 유용합니다.)

  2. Platform Invoke (P/Invoke) C++로 작성된 DLL에 액세스 할 수 있습니다. C++ DLL 용 C API를 사용하면 훨씬 쉽지만 그렇지 않은 경우 가능합니다.