2013-06-06 3 views
0

타사 C++ 라이브러리를 사용하는 프로그램을 작성하고 있습니다. 필자는 C#/응용 프로그램에 필요한 메서드 중 일부를 노출 할 수 있도록 C++/CLI 래퍼를 작성했지만 조금 문제가 있습니다.C에서 비 관리 C++ 클래스

외부 라이브러리에는 내가해야 할 일을 수행하기 위해 액세스 권한이 있어야하는 다수의 맞춤 클래스와 개체가 있습니다. 그러나 C# 응용 프로그램 내에서 이러한 개체에 액세스 할 수 없으며 대부분의 비즈니스 논리를 유지하려고합니다.

내 질문은 : C++/CLI 래퍼를 통해 다시 전달할 수 있도록 이러한 개체의 C# 버전을 작성해야합니까, 아니면 더 쉽게이 방법이 있습니까?

도움이 될 경우 B-TK 프레임 워크 (https://code.google.com/p/b-tk/)를 사용하고 있습니다.

+0

설명 : P/Invoke가 길일 수 없다고 제안 하시겠습니까? – DonBoitnott

+0

반환 값이 라이브러리에 정의 된 사용자 정의 객체 인 경우 작동합니까? 이 관리되지 않는 C++에서 Managed 코드에 이르기까지 새로운 점이 있으며 래퍼가 최상의 솔루션이라고 생각했습니다. 나는 그러나 아주 틀릴 수 있었다. 편집 : 또한 관리되지 않는 코드의 반환 개체에 모든 "스마트 포인터"입니다. – mattjc

+0

그들은 SWIG와 파이썬 바인딩을했습니다. 또한 C++/CLI 래퍼를 생성 할 수 있습니다. –

답변

0

마찬가지로 어렵지 만 역순으로해야합니다. C#에서 사용할 수있는이 클래스의 C++/CLI 관리 버전을 작성합니다. 다른 사람들이 말한 것처럼 도구로 할 수 있다면 그렇게해야합니다.