DLL 을 호출하려면, 먼저 라이브러리가 C / C++ DLL 인지, Microsoft .NET 어셈블리인지 식별해야 합니다. .NET DLL 은 .NET 어셈블리라고도 불리며, .NET 프로그래밍에 유용하게 사용됩니다. .NET DLL 은 CLR (Common Language Runtime) 및 .NET Framework 를 사용하여 DLL 내부의 함수를 관리합니다.
DLL 이 C / C ++ DLL 인 경우 :
- 헤더 파일 (* .h) 이나 함수 원형 정의를 찾습니다.
- 호출하고자 하는 함수를 확인합니다. 호출하려는 함수의 매개 변수에 int, char, double 등의 기본 데이터 형식 파라미터가 있는지, 또는 구조체, 배열 혹은 벡터와 같이 복합 데이터 형식이 들어 있는지의 여부를 확인합니다.
- 함수에 복합 데이터 유형이 없고 헤더 파일 (*.h) 이 있는 경우 공유 라이브러리 가져오기 마법사를 사용하여 헤더 파일에 함수가 포함된 LabVIEW 라이브러리를 생성할 수 있습니다. 이 옵션은 도구 » 반입 » 공유 라이브러리 (.dll)... 에서 찾을 수 있습니다. 마법사를 계속 진행하십시오.
- 헤더 파일이 없으면 라이브러리 함수 호출 노드를 .dll 의 적절한 문서와 함께 사용할 필요가 있습니다. 아래 그림은 팔레트에 있는 라이브러리 함수 호출 노드의 위치를 보여줍니다.
- 라이브러리 함수 호출 노드를 더블 클릭하여 노드를 구성하십시오. 구성 창의 함수 탭에서 DLL 경로를 입력하고 호출할 함수를 선택합니다.
- 호출할 함수에 복합 데이터 유형이 포함된 경우, 라이브러리 함수 호출 노드의 구성 대화 상자에서 함수 원형 타입을 수동으로 정의해야 합니다. (만약 DLL 이 유형 라이브러리로 컴파일 된 경우, 파라미터 데이터 형식 및 반환 타입은 자동적으로 정의됩니다.) 구성 창의 파라미터 탭으로 이동한 뒤, 파라미터를 추가하고 창의 맨 아래에 있는 함수 원형 타입이 DLL 의 함수 정의와 일치하도록 반환 데이터 타입을 수정합니다.
DLL이 .NET 어셈블리 인 경우 :
- LabVIEW에서 .NET 어셈블리를 사용하려면 .NET 팔레트 (연결 ».NET ) 를 사용하여 사용 가능한 모든 기능을 찾을 수 있습니다.
- 먼저 .NET 어셈블리 내에서 클래스를 인스턴스화하기 위해 컨스트럭터 노드를 사용합니다. 컨스트럭터 노드를 더블 클릭하여 .NET 생성자 선택 대화 상자를 불러 와서 설정합니다.
- 클래스 참조가 연결된 프로퍼티 노드 및 인보크 노드를 활용하여 클래스의 멤버 변수 및 메소드에 접근할 수 있습니다.
Additional Information
복합 데이터 유형이 기본 데이터 유형 (int, double, char, etc.) 이 아닌 데이터 타입의 구조체인 경우, 함수 호출을 단순화하기 위해 C 기반 언어에서 Wrapper DLL 을 만들어 사용할 수 있습니다. C / C++ 구문은 LabVIEW 데이터 유형과 항상 직접적으로 관련되는 것은 아니며, Wrapper DLL 은 복잡한 구조의 내용을 적절히 추출하여 기본 데이터 유형으로 변환할 수 있습니다. 예를 들어, C 에서 char * (문자열 혹은 문자 배열) 이 포함된 C 구조체를 활용하는 DLL 을 사용하고 있다고 가정해 보겠습니다. Wrapper DLL 에는 char * 구조체와 이를 다루는 wrapper 함수를 포함시키고, 원본 DLL 을 호출하도록 구성할 수 있습니다. LabVIEW 에서는, 원본 DLL 이 아닌 Wrapper DLL 을 호출하여 보다 호출 작업을 단순화할 수 있습니다. 혹은, 원본 DLL 의 소스 코드가 있다면, 구조체 대신 char * 를 사용하도록 DLL 을 직접 수정할 수도 있을 것입니다.
LabVIEW 예제 탐색기에는 LabVIEW 에서 외부 코드를 올바르게 호출하는 방법에 대한 여러 예제들이 있습니다. 도움말 » 예제 찾기 » 외부 어플리케이션과 통신하기에서 확인해 보시기 바랍니다.