티스토리 뷰

이번 포스팅에서는 랩뷰(LabVIEW)와 C#과의 연동에 대해서 알아보도록 하겠습니다. 


랩뷰에서 만든 DLL을 C#에서 연동하기 COM Interop에 대해서 아셔야 합니다. COM Interop은 닷넷 프레임 워크의 CLR에서 DLL을 사용할 수 있게끔 도와주는 방식입니다. 아래의 그림처럼 C#이든 VB.NET이든 서로 다른 언어에서 만든 EXE이나 DLL 파일을 .NET Framework의 Class Loader에서 사용할 수 있게끔 도와주는 역할을 합니다.



위키 백과에 정리 되어 있는 COM Interop의 내용은 아래와 같습니다.

COM Interop은 닷넷 프레임워크(.NET Framework)에서 공통 언어 런타임(CLR)에 포함된 컴포넌트 오브젝트 모델(COM) 개체를 상호 운용할 수 있게 만드는 기술이다. COM Interop은 COM 컴포넌트의 수정 없이 액세스할 수 있는 기능을 제공하며, COM 타입의 개체를 .NET 타입의 개체에 대응하도록 시도한다. 그리고 COM Interop는 COM 개발자들이 COM 개체에 액세스하는 것만큼 쉽게 관리 개체에 액세스할 수 있도록 허용한다.


.NET Framework용으로 개발된 코드는 관리 코드라고 하며 CLR에 사용되는 메타데이터를 포함한다. NET Framework 응용 프로그램에 사용되는 데이터는 관리되는 데이터라고 하는데 이는 런타임에서 메모리 할당/회수 및 형식 검사 수행 등의 데이터 관련 작업을 관리하기 때문이다. 기본적으로 Visual Basic 2005에서는 관리 코드와 관리되는 데이터를 사용하지만 interop 어셈블리를 사용하여 COM 개체의 비관리 코드와 관리되지 않는 데이터에 액세스할 수도 있다. 


추가 내용은 MSDN을 통해서 확인 할 수 있습니다. 

COM Interop 소개 : http://msdn.microsoft.com/ko-kr/library/kew41ycz.aspx


랩뷰(LabVIEW)를 이용해서 텍스트 언어와 연동을 하기 위해서는 1) .NET Interop 어셈블리 생성 혹은 2) DLL(공유 라이브러리)을 이용하는 2가지 방법이 있습니다. 전자는 .NET Framework 기반, 후자는 동적 라이브러리를 활용하는 방법이라 할 수 있겠습니다.


이번 포스팅에서는 .NET Framework와 관련된 글을 적고자 합니다.


랩뷰(LabVIEW)에서 .Net 관련 DLL을 만들기 위해서는 프로젝트를 생성하여 빌드 스펙에서 적용할 수 있습니다. 빌드 스펙에서 오른쪽 마우스 버튼을 누르면 팝업 메뉴가 하나 생기는데 거기 에서 .NET Interop 어셈블리를 선택하면 됩니다.



.NET Interop 어셈블리를 선택하면 아래와 같이 프로퍼티를 설정하는 창이 나옵니다. 항목-정보에서 .NET Interop에 대한 namespace와 클래스의 이름을 설정할 수 있습니다. 




정보 부분을 작성하고, 항목 - 소스 파일부분을 클릭을 하면 작성한 VI에 대한 DLL 생성에 필요한 소스파일들을 선택하게 됩니다. 이 포스팅에서는 Main_Multi-Matrix.vi라는 파일을 VI 반출 리스트로 옮겼습니다. 



반출할 VI를 선택하였으니 VI에 대한 원형 정의를 클릭합니다. 원형 정의 창은 반출하려고 상단 그림의 화살표를 누르면 자동으로 뜹니다. 수동으로 변경하고 자 하면 반출 리스트 아래부분의 원형 정의를 클릭하시면 됩니다. 


여기에서 설정되는 파라미터들은 VI의 컨넥터 팬에 설정된 데이터를 정리하시면 됩니다. (컨넥터 팬은 옆의 그림처럼 생겼죠.. 

파라미터를 전체 설정을 하시고 확인을 누릅니다. 



그리고 나서 빌드를 하시면 빌드 상태에서 빌드과 완료되었다는 메시지를 확인할 수 있으며, 적혀진 경로에 .NET Interop을 위한 DLL 파일이 생성된것을 확인할 수 있습니다. 




댓글