2012-04-18 3 views
1

C++/MFC에서 GDAL로 알려진 라이브러리를 구현했으며이 프로젝트는 비트 맵 그리기 용 gdiplus도 구현합니다.MFC 클래스에서 C#

간단히 말해서 int, string 및 다른 꽤 일반적인 형식을 사용하는 클래스에서 모든 것을 캡슐화하고 일부 형식과 일부 gdiplus :: Bitmap을 반환합니다. 이 모든 것은 .dll과 .lib에 훌륭하게 포장되어 있습니다.

이제는이 라이브러리를 C# 프로젝트에서 사용하여 양식의 모든 기능을 사용하고 싶습니다.

전체 인터 웹에서 대답을 찾았지만 자습서 및 기타 유용한 문서를 찾을 수 없었습니다.

하지만 내 눈을 사로 잡았지만 그다지 잘 설명되지 않은 해결책이 있었는데, 그것은 C++/clr 래퍼였습니다. 나는 C#이 finnely reference로 받아 들여지는 것을 만들었지 만, 그 클래스를 instanciate 시키지도 못하고 네임 스페이스 나 다른 트로프 intellisence를 보지 못하게한다.

누군가가 저를 도울 수 있거나 저에게 저에게 저에게 도울 수 있으면 좋았던 저것은 다량 평가 될 것입니다.

+1

C++을 사용할 수 없습니다 C# 프로젝트의 클래스 라이브러리를 COM 객체로 만들 수 있습니까? – Flot2011

+1

비 아이러니 컬하게 "interweb"이라는 용어를 사용하려면 어둡게해야합니다. –

+0

@ Flot2011 - 내가 대답했다면 대답에 대한 당신의 의견을 말하고 싶습니다. :-) –

답변

1

C# 프로젝트에서는 C++ 클래스를 사용할 수 없습니다.

두 가지 옵션이 있습니다.

첫 번째 방법은 관리되지 않는 클래스에 액세스하고 클래스의 다양한 속성/방법에 통화를 집계 관리 클래스를 만드는 것 VC++에서 관리되는 래퍼를 생성하는 것입니다.

는 래퍼가 있으면, 당신은 단지 참조를 설정할 수 있습니다이

을 수행하는 방법이 article보기, 다음의 C#에서 클래스를 사용합니다.

두 번째 방법은 MFC 개체를 COM 개체로 래핑하는 것입니다. 당신은 인터페이스를 정의한 다음 클래스 팩토리를 생성하고 객체를 인스턴스화해야합니다 ... 더 "객체 지향적"이지만 많은 작업입니다. tutorial

+0

은 COM은 C# 또는 함수 만 사용하여 클래스를 사용하게합니까? –

+0

@LeonCantin 수업을 사용할 수 있습니다. – lorond

+0

우수! 누구든지 COM에 대한 좋은 문서를 가지고 있습니까? 나는 광산과 관련이없는 mathers를위한 매우 구체적인 작은 자습서를 찾을 수 있습니다. –