프로그래밍/랩뷰 기술자료

랩뷰에서 DLL (Dynamic Link Library) 호출

에이티에스 2023. 8. 10. 09:56
728x90

DLL을 호출하려면 먼저 라이브러리가 C / C ++ DLL인지 Microsoft .NET Assembly / .NET DLL인지 식별해야합니다.

가지고있는 라이브러리 유형을 확인하려면 DLL 파일에 대한 PE (Portable Executable) 헤더를 확인할 수 있습니다.

 

DLL이 C / C ++ DLL일 경우

헤더 파일 (* .h) 또는 함수 프로토 타입 정의를 찾습니다.

 

호출하려는 기능을 식별하십시오. 함수의 매개 변수에 원시 데이터 유형 매개 변수 (예 : int, char, double 등)가 포함되어 있는지 또는 복잡한 데이터 유형 (예 : 구조체, 배열 또는 벡터)이 포함되어 있는지 확인하십시오.

 

함수에 복잡한 데이터 타입이없고 헤더 파일 (* .h)이있는 경우, 공유 라이브러리 가져 오기 마법사를 사용하여 헤더 파일의 함수를 포함하는 LabVIEW 라이브러리를 생성 할 수 있습니다. 이 옵션은 도구»가져 오기 »공유 라이브러리 (.dll) ... 에서 찾을 수 있습니다. 마법사를 계속합니다.

 

 

헤더 파일이 없으면 .DLL의 적절한 문서와 함께 라이브러리 함수 호출 노드 를 사용해야합니다. 아래 그림은 팔레트에서 라이브러리 함수 호출 노드의 위치를 보여줍니다.

 

라이브러리 함수 호출 노드를 두 번 클릭하여 노드를 구성하십시오. 구성 창의 기능 탭에서 DLL 경로를 입력하고 호출 할 기능을 선택합니다.

 

호출하려는 함수에 복잡한 데이터 유형이 포함되어 있으면 라이브러리 함수 호출 노드의 구성 대화 상자에서 함수 프로토 타입을 수동으로 정의해야합니다 (DLL이 유형 라이브러리로 컴파일 된 경우 매개 변수 데이터 반환 유형은 자동으로 정의됩니다). 구성 창의 매개 변수 탭으로 이동합니다. 여기에서는 창 하단의 함수 프로토 타입이 DLL의 함수 정의와 일치 할 때까지 매개 변수를 추가하고 반환 유형을 수정합니다.

 


DLL이 .NET 어셈블리일 경우

LabVIEW에서 .NET 어셈블리를 사용하려면 .NET 팔레트 (Connectivity ».NET ) 를 사용하여 사용 가능한 모든 함수를 찾으십시오.

.NET 어셈블리 내에서 클래스를 인스턴스화하려면 먼저 생성자 노드를 사용하십시오. 생성자 노드를 두 번 클릭하여 .NET 생성자 선택 대화 상자를 표시하면됩니다.

속성 및 호출 노드를 사용하여 생성자 노드에서 속성 또는 호출 노드로 클래스 참조를 간단히 연결하여 클래스의 속성 및 메서드에 액세스합니다. 

 

 

.NET DLL은 .NET 어셈블리라고도하며 .NET 프로그래밍에 유용합니다. .NET DLL은 CLR (공용 언어 런타임) 및 .NET Framework를 사용하여 DLL 내의 함수를 관리합니다.

복잡한 데이터 유형이 기본 데이터 유형 (int, double, char)보다 많은 구조체 인 경우 C 기반 언어에서 래퍼 DLL을 만들어 함수 호출을 단순화 할 수 있습니다.

C / C ++ 구조는 항상 LabVIEW 데이터 유형과 직접 연관되는 것은 아니며, 래퍼 DLL은 복잡한 구조의 내용을 적절하게 추출하여 원시 용어로 변환 할 수 있습니다. 예를 들어, 사용중인 DLL은 char * (문자열 또는 문자 배열)를 포함하는 C의 구조체를 사용합니다. 래퍼 DLL에는 char *를 구조체에 배치하고 차례로 원래 DLL을 호출하는 char * 매개 변수가있는 래퍼 함수가 포함될 수 있습니다. LabVIEW에서 대신 래퍼 DLL 함수를 호출 할 수 있습니다. 또는 DLL 소스 코드가있는 경우 구조체 대신 char *를 사용하도록 DLL을 직접 수정할 수 있습니다.

728x90
반응형
그리드형