C#으로 네이티브 코드 접근하기 part 1

|
닷넷 4.0 환경에서 네이티브 코드 와 매나지드 코드를 연결하는 방법을 2 회정도로 나누어서 다뤄볼까합니다.

닷넷에 대한 기초적인 개념이 구조는 다른 좋은 강좌들이 많으니 넘어가기로 하겠습니다. 저는 실제로 응용사례를 통해서 방법을 소개 해볼까합니다.

기본 아이디어는 다음과 같습니다.




그림에서 처럼 네이티브로 작성된 DLL 네이티브 코드와 혼합된 DLL을 경유해서 닷넷 기반언어에서 사용하는 방법입니다.
게임개발시 이런 방법을 사용할경유 장점은 네이티브코드로된 게임엔진으로 툴제작시 mfc를 사용하지않고 좀더 다루기 쉬운 C#을 사용해서 툴을 만들수있다는 장점있습니다.
뿐만 아니라 게임에서 많이 쓰이는 루아나 파이썬대신 C#으로 스크립트언어로도 사용할수있다는 점이있습니다. C#을 스크립트언어로 사용할경우 VS강력한 IDE의 화력지원을 받아 좀더 효과적인 개발을 할수있기때문입니다.

먼저 간단하게 전역함수를 콜해보는 예제를 살펴 보도록 하겠습니다.



이런식으로 네이티브 DLL을 만든 다음 이것을 매나지드 코드 DLL로 한번더 랩핑을 해주어야합니다.


class 이름 앞에 ref라고 붙는데 이렇게 하면 닷넷 기반의 다른 언어들이 같이 쓸수잇는 클래스가 만들어 집니다. ref가 붙지 않으면 오직 네이티브에서 만 쓸 수 있는 클래스가 만들어 지고요.

 

C#쪽에서는 다음과 같이 사용을 할 수 있습니다.

다음에는 네이티브 코드쪽 class를 매나지드 코드 class로 랩핑하여 매나지드 언어에서 콜하는 방법을 알아보도록 하겠습니다.

















And