LabVIEW에서 동적으로 DLL을 호출 및 호출 해제하는 방법

업데이트 됨 Jan 4, 2024

해당 제품

소프트웨어

  • LabVIEW

문의사항

LabVIEW에서 메모리에 있는 DLL을 호출하고, 프로그램을 종료할 때 DLL 호출을 해제하고자 합니다.

코드에서 사용하지 않은 라이브러리는 포함시키지 않고 싶습니다.

해결책

LabVIEW 8.2 버전에서, 동적 링크 라이브러리 (이후부터는 DLLs라고 언급)을 동적으로 호출하거나 호출 해제할 수 있습니다. LabVIEW 2009 Help: Call Library Function Node에 프로세스에 대해서 설명되어 있습니다. 정리하자면, DLL을 동적 호출하기 위해서는 라이브러리 함수 호출 노드 다이얼로그 박스에서 다이어그램에 경로 지정 부분을 체크할 필요가 있습니다. 다이얼로그 박스는 라이브러리 함수 호출 노드를 마우스로 더블 클릭하여 실행할 수 있습니다.

다이어그램에서 경로 지정 파라미터를 선택하면, 경로 입력이라는 터미널이 라이브러리 호출 함수에 나타납니다. 이 터미널은 원하는 DLL을 호출할 수 있도록 경로를 지정해줍니다. 해당 라이브러리 함수 호출 기능이 실행되면 참조에 지정된 DLL이 메모리에 호출됩니다. 아래 그림을 참조하십시오.

 LabVIEW 2009 Help: Call Library Function Dialog Box 에도 보면, 입력된 경로의 메모리로부터 이전에 참조된 라이브러리를 호출 해제하는데 사용할 수 있습니다. 이렇게 하면, 경로 입력에 빈 경로 또는 잘못된 경로를 입력하고, LabVIEW는 이전의 메모리에서 참조되는 라이브러리를 호출 해제합니다. 즉, 경로 입력 터미널에 비어있는 경로 또는 널(null) 경로를 연결하여 라이브러리 함수 호출 노드를 통해서 DLL을 호출합니다. 예를 그림으로 나타냈습니다. 첫번째로 DLL을 호출하고, 불리언 버튼을 통해서 코드를 정지하며, DLL 호출을 해제합니다. 거짓 케이스는 코드가 포함되지 않았으므로, 나타내지 않았습니다.

만약 비어있는 경로 또는 다른 경로가 연결된 서로 다른 라이브러리 함수 호출 노드가 있을 경우는 처음에 호출된 DLL은 메모리에서 호출 해제 되지 않습니다. 아래 그림은 하지 말아야할 예를 나타냅니다.