2014-10-16 2 views
2

C# ASP.Net 응용 프로그램과 함께 사용해야하는 C 라이브러리의 소스 코드가 있습니다. 이 처리하는 방법을 C++ dll 래퍼 및 DLLImport 내 C# 프로젝트로 만드는 것 같습니다. 나는 이것이 전체 애플리케이션이 충돌하는 예외를 던질 때까지보기 흉한 것을 발견했다. 이것을 달성하는 가장 좋은 방법입니까 아니면 더 안전한 방법입니까? C 라이브러리로 COM 객체를 만들 수있는 방법에 대한 연구를하고 싶지만 실제로 많이 발견하지는 못했습니다. COM 개체를 만들고 .NET 관리 코드로 참조 할 수 있습니까?.NET 웹 응용 프로그램에서 C 라이브러리 사용

+0

C++/CLI 클래스 라이브러리? – Aybe

답변

3

나는 내 주위를 둘러 보았다. 나는

  1. PInvoke를 함께 사용하여 C#을 외관 및 C++/CLI의 상호 운용성 층으로 외관
  2. 의 정렬 화 및 C#으로 소비를 위해 혼합 모드에서 컴파일을 많이 비교하는이 위대한 article을 발견했다. 또한

MSDN citation : 가능 성능 향상을, 더 나은 형태의 안전성을 제공합니다 구현하기 일반적으로 덜 지루, 관리되지 않는 API이 변경되는 경우에 더 관대하고, 만들기 때문에 C++ Interop를 명시 적 PInvoke를 통해 권장되는 없습니다 명시 적 PInvoke로 가능합니다.

  1. 결과 클래스

    는 Visual C++에서 이외의 다른 언어에서 사용할 수 있습니다

    또한 (C++ COM 외관) 당신의 생각은 합법적 2 preached by the good book 등의 장점을 보인다.
  2. COM 인터페이스의 세부 정보를 관리되는 클라이언트 코드에서 숨길 수 있습니다. 네이티브 형식 대신 .NET 데이터 형식을 사용할 수 있으며 데이터 마샬링의 세부 정보는 사용자 지정 런타임 호출 가능 래퍼에서 투명하게 수행 할 수 있습니다.
관련 문제