블록다이어그램의 라이브러리 함수 호출 노드에서 마우스 오른쪽 버튼을 클릭하고 바로 가기 메뉴에서 설정을 선택하여 이 대화 상자를 디스플레이합니다.

이 대화 상자를 사용하여 라이브러리, 함수, 파라미터, 객체의 리턴 값, 공유 라이브러리를 호출하는 방법을 지정합니다. 대화 상자에서 확인 버튼을 클릭할 때, LabVIEW는 블록다이어그램의 객체를 업데이트합니다. 객체는 올바른 개수의 터미널을 디스플레이하고 올바른 데이터 타입으로 터미널을 설정하면서 이 대화 상자의 셋팅을 반영합니다.

또한 [라이브러리 함수 호출 노드]를 사용하여 텍스트 기반 프로그래밍 언어로 작성된 코드를 호출할 수 있습니다. ActiveX 개체가 포함된 공유 라이브러리를 호출하려면 속성 노드호출 노드와함께 자동화 열기 함수를 사용합니다.

이 대화 상자는 다음의 구성요소를 포함합니다.

옵션 설명
함수 함수 탭을 사용하여 [라이브러리 함수 호출 노드]를 설정합니다.

이 탭에는 다음의 구성요소가 포함됩니다:

  • 라이브러리 이름 또는 경로

    호출하는 라이브러리의 이름이나 경로를 지정합니다. 이러한 두 기법은 상호 교환하여 사용할 수 없으며, VI와 어플리케이션을 배포하거나 위치를 재설정할 때 다른 결과를 낳습니다. 공유 라이브러리를 이름으로 지정해야 하는 경우와 경로로 지정해야 하는 경우에 대한 더 자세한 정보는 Specifying the Location of Shared Libraries on Disk를 참조하십시오.

    참조 플랫폼을 독립적으로 만들려면, 와일드카드인 *를 사용합니다. C++ 컴파일러를 사용하는 경우, 라이브러리 내의 함수 이름은 이름 변환(name mangling)이라는 과정을 통해 바뀌며 플랫폼에 따라 달라집니다. 헤더 파일에 C++ 컴파일러 함수 반출 지정자(C++ compiler function export directive)인 extern "C"{}를 사용하여 이름 호출이라는 과정을 실행함으로써 C++ 컴파일러가 반출된 함수 이름을 처리할 때 플랫폼과 관계없이 실행되도록 합니다.

  • 다이어그램에서 경로 지정-

    블록다이어그램에 라이브러리 이름 또는 경로 중 어느 것을 입력하는지 결정합니다. 이 확인란에 확인 표시를 하면 경로 입력경로 출력은 노드의 커넥터 팬에서 입력 및 출력 터미널로 나타납니다. 이 확인란에 확인 표시를 하면 라이브러리 이름 또는 경로에서 참조된 라이브러리는 사용되지 않습니다. 경로 입력을 사용하여 이전에 참조된 라이브러리를 메모리에서 로드 해제할 수 있습니다. 비거나 유효하지 않은 경로를 경로 입력 입력에 연결하여 노드가 이전에 참조했던 모든 라이브러리를 메모리에서 로드 해제합니다.

  • 함수 이름-

    호출하는 함수의 이름을 지정합니다. 참조 라이브러리를 참조하면 함수 이름 컨트롤이 해당 라이브러리에서 찾은 함수 이름으로 채워집니다(macOS). 함수 이름 컨트롤이 비어 있는 경우 nm 유틸리티를 설치하여 함수 이름 목록을 확인합니다. nm 유틸리티는 macOS의 표준 개발 환경인 Xcode와 함께 설치됩니다. Xcode는 Mac App Store에서 무료로 다운로드할 수 있습니다.

  • 스레드

    [라이브러리 함수 호출 노드]가 현재 VI가 실행되고 있는 스레드에서 사용자 인터페이스 스레드로 스위치하는지, 아니면 현재 실행 스레드에 머무는지 여부를 컨트롤합니다. 기본은 UI 스레드에서 실행입니다.

    • UI 스레드에서 실행-

      라이브러리 함수 호출 노드 실행이 현재 스레드에서 사용자 인터페이스 스레드로 스위치해야함을 지정합니다. 다이어그램에 경로 지정을 사용하여 다이나믹하게 로드한 LabVIEW 내장 공유 라이브러리의 UI 스레드에서 실행하면 LabVIEW가 멈추게 됩니다.

    • 모든 스레드에서 실행

      [라이브러리 함수 호출 노드]가 현재 VI가 실행되는 스레드에서 계속 실행되도록 지정합니다. 여러 스레드가 동시에 함수를 호출할 수 있도록 해야 합니다. 참조 LabVIEW에서 빌드한 공유 라이브러리에 대한 모든 호출은 모든 스레드에서 실행을 지정해야 합니다. LabVIEW 내장 공유 라이브러리를 사용하는 [라이브러리 함수 호출 노드]를 설정하고 모든 스레드에서 실행을 지정하면 LabVIEW가 멈추어 다시 시작해야 하는 경우도 있습니다.

  • 통화 관례-

    함수의 호출 형식을 지정합니다. 기본은 C입니다.

    • stdcall(WINAPI)-

      객체가 __stdcall 호출 형식을 사용하는지 여부를 컨트롤합니다.

    • C-

      객체가 __cdecl 호출 형식을 사용할지 컨트롤합니다.

  • 기능 프로토타입-

    함수의 C 원형을 디스플레이합니다. 이것은 읽기 전용 디스플레이입니다.

파라미터

[라이브러리 함수 호출 노드]의 현재 파라미터를 나열합니다. 파라미터 리스트의 오른쪽에 있는 버튼을 사용하여 파라미터 리스트를 설정할수 있습니다. 반환 타입은 삭제할 수 없는 필수 파라미터입니다.

  • 매개변수-

    [라이브러리 함수 호출 노드]의 현재 파라미터를 나열합니다. 파라미터 리스트의 오른쪽에 있는 버튼을 사용하여 파라미터 리스트를 설정할수 있습니다. 반환 타입은 삭제할 수 없는 필수 파라미터입니다.

    • 매개변수 추가-

      파라미터 리스트에서 선택된 파라미터 아래에 파라미터를 추가합니다.

    • 선택한 매개변수를 삭제합니다

      파라미터 리스트에서 선택된 파라미터를 삭제합니다.

    • 선택한 매개변수를 한 단계 위로 이동합니다

      함수 원형에서 파라미터의 순서를 수정하는 파라미터 리스트에서 선택된 파라미터를 한 레벨 위로 움직입니다.

    • 선택한 매개변수를 한 단계 아래로 이동합니다

      함수 원형에서 파라미터의 순서를 수정하는 파라미터 리스트에서 선택된 파라미터를 한 레벨 아래로 이동합니다.

  • 현재 매개변수-

    선택된 파라미터의 셋팅을 설정하도록 허용합니다.

    • 이름-

      파라미터 이름을 지정합니다.

    • 유형-

      파라미터의 데이터 타입을 지정합니다.

      • 숫자-숫자 데이터 유형을 사용하도록지정합니다.
        • 데이터 유형-

          타입 컨트롤에서 선택한 데이터의 정확한 타입을 지정합니다.

          노트 부호있는 포인터 크기 정수 또는 부호없는 포인터 크기 정수 숫자 데이터 타입을 사용하는 경우, 라이브러리 함수 호출 노드는 실행되고 있는 특정 OS에 적응하며 적당한 크기의 데이터를 라이브러리 함수에 반환합니다. 64 비트 플랫폼 LabVIEW는 이러한 숫자형 데이터 타입을 64 비트 정수 타입으로 변경합니다. 32 비트 플랫폼 LabVIEW는 이러한 숫자형 데이터 타입을 32 비트 정수 타입으로 변경합니다.
        • 패스-

          값이나 포인터를 값에 전달할 지 여부를 나타냅니다.

      • 배열 -배열 데이터 유형을 사용하도록지정합니다.
        • 데이터 유형-

          타입 컨트롤에서 선택한 데이터의 정확한 타입을 지정합니다.

          노트 부호있는 포인터 크기 정수 또는 부호없는 포인터 크기 정수 숫자 데이터 타입을 사용하는 경우, 라이브러리 함수 호출 노드는 실행되고 있는 특정 OS에 적응하며 적당한 크기의 데이터를 라이브러리 함수에 반환합니다. 64 비트 플랫폼 LabVIEW는 이러한 숫자형 데이터 타입을 64 비트 정수 타입으로 변경합니다. 32 비트 플랫폼 LabVIEW는 이러한 숫자형 데이터 타입을 32 비트 정수 타입으로 변경합니다.
        • 치수-

          파라미터의 차원을 지정합니다.

        • 배열 형식-

          사용할 배열 포맷을 지정합니다.

        • 최소 크기 -

          1D 배열의 최소 크기를 나타내며 정확한 메모리양을 할당합니다. 숫자값을 입력하거나, 또는 파라미터 리스트에서 정수 파라미터를 설정한 경우에는 풀다운 메뉴에서 파라미터를 선택할 수 있습니다. 기본은 없음입니다. 이 옵션은 오직 배열 데이터 포인터에서만 사용 가능합니다.

          최소 크기보다 작은 문자열을 전달하면 LabVIEW는 문자열의 크기를 최소로 확대합니다. 최소 크기보다 큰 문자열을 통과시키면 문자열의 크기는 그대로 유지됩니다. 최소 크기보다 작은 배열을 통과시키면 LabVIEW가 해당 배열을 최소 크기로 확대합니다. 최소 크기보다 큰 배열을 통과시키면 배열의 크기는 그대로 유지됩니다.
      • 문자열 - 문자열 데이터 유형을 사용하도록지정합니다.
        • 문자열 형식 -사용할 문자열 형식을지정합니다.
        • 최소 크기

          1D 배열의 최소 크기를 나타내며 정확한 메모리양을 할당합니다. 숫자값을 입력하거나, 또는 파라미터 리스트에서 정수 파라미터를 설정한 경우에는 풀다운 메뉴에서 파라미터를 선택할 수 있습니다. 기본은 없음입니다. 이 옵션은 오직 배열 데이터 포인터에서만 사용 가능합니다.

      • 파형 -파형 데이터 유형을 사용하도록지정합니다. 데이터 타입 풀다운 메뉴에서 정확한 숫자형 데이터 타입을 지정해야 합니다.
        • 데이터 유형-

          타입 컨트롤에서 선택한 데이터의 정확한 타입을 지정합니다.

        • 치수 -

          파라미터의 차원을 지정합니다.

          매개변수가 단일 파형인 경우, 치수를 0으로 지정합니다. 파라미터가 웨이브폼 배열이면, 차원을 1로 지정합니다. LabVIEW는 1차원보다 큰 웨이브폼의 배열을 지원하지 않습니다.
      • 디지털 파형 -디지털 파형 데이터 유형을 사용하도록지정합니다.
        • 치수-

          파라미터의 차원을 지정합니다.

          매개변수가 단일 디지털 파형인 경우 치수를 0으로 지정합니다. 파라미터가 디지털 웨이브폼의 배열인 경우, 차원을 1로 지정합니다. LabVIEW는 1차원보다 큰 디지털 웨이브폼의 배열을 지원하지 않습니다.
      • 디지털 데이터 -디지털 데이터 데이터 유형을 사용하도록지정합니다.
        • Dimensions-

          파라미터의 차원을 지정합니다.

          매개 변수가 디지털 데이터 배열인 경우 Dimensions를 1로 지정합니다. 그렇지 않으면 차원을 0으로 지정하십시오. LabVIEW는 1차원보다 큰 디지털 데이터의 배열을 지원하지 않습니다.
      • ActiveX - ActiveX 데이터 유형을사용하도록지정합니다.
        • 데이터 유형-

          타입 컨트롤에서 선택한 데이터의 정확한 타입을 지정합니다.

      • 유형에 맞게 조정 - 유형에 맞게 조정 데이터 유형을사용하도록지정합니다.
        • 데이터 형식 - 유형 컨트롤에서 선택한 데이터의 형식을지정합니다.
          • 크기 조정허용 -

            라이브러리가 파라미터의 크기를 조정하도록 허용할지를 지정합니다. 일부 경우에는 크기 조정을 허용하지 않음으로써 메모리에 과도한 복사본이 생성되는 것을 피할 수 있습니다.

            상수 확인란에 체크 표시가 있는 경우 상수 매개변수의 크기를 조정할 수 없으므로 LabVIEW에서 이 옵션을 비활성화합니다.
            노트 이 옵션은 데이터 포맷 풀다운 메뉴에서 데이터에 대한 인터페이스를 선택하는 경우에만 사용할 수 있습니다.
      • 인스턴스데이터 포인터 -인스턴스 데이터 포인터 데이터 유형을 사용하도록지정합니다. 인스턴스 데이터 포인터는 임의로 사용하는 포인터 크기의 할당을 참조합니다. 또한 이 할당은 콜백 탭의 각 콜백 함수로 전달됩니다.
    • 상수-

      파라미터가 상수인지 나타냅니다.

  • 기능 프로토타입-

    함수의 C 원형을 디스플레이합니다. 이것은 읽기 전용 디스플레이입니다.

콜백

콜백 탭을 사용하여 미리 정의된 시간에서 호출할 함수를 지정합니다. 이 함수를 사용하면, 설정 중인 [라이브러리 함수 호출 노드]의 특정한 인스턴스에 기반하여 DLL 또는 공유 라이브러리의 데이터를 초기화, 업데이트 및/또는 정리할 수 있습니다. 각 호출은 함수가 설정된 [라이브러리 함수 호출 노드]의 인스턴스 데이터 포인터로 전달됩니다.

노트 콜백 함수를 라이브러리 함수에 파라미터로 전달하는데 콜백 탭을 사용할 수 없습니다. [라이브러리 함수 호출 노드]는 콜백 함수를 파라미터로 요구하는 라이브러리 함수를 직접 호출할 수는 없지만, 래버 라이브러리를 생성하면 직접 호출할 수 있습니다.

이 탭에는 다음의 구성요소가 포함됩니다:

  • 예약-

    재호출 VI의 각 노드 및 데이터 스페이스 인스턴스를 위해 예약된 시간에 호출되는 함수를 지정합니다.

  • 예약취소

    재호출 VI의 각 노드 및 데이터 스페이스 인스턴스를 위해 예약 해제 시 호출되는 함수를 지정합니다. 콜백 예약 해제를 사용하여 정보 저장 또는 분석 및 클린업 작업을 수행합니다.

  • 중단-

    공유 라이브러리 또는 DLL 호출이 진행되고 있는 도중에 VI를 강제종료한 경우 호출할 함수를 지정합니다. 라이브러리 함수 호출 노드가 UI 스레드에서 실행되도록 설정된 경우, 프로세스 강제 종료는 호출되지 않습니다. 강제 종료 콜백을 사용하여 정보 저장 또는 분석 및 클린업 작업을 수행합니다.

  • 이러한 절차를 위한 프로토타입

    사용자 정의된 과정이 호출하는 C 원형을 디스플레이합니다. 각 함수는 InstanceDataPtr 파라미터를 전달합니다. 이 파라미터를 통해 사용자는 관련 [라이브러리 함수 호출 노드] 인스턴스의 데이터를 초기화하고 접근하여 노드가 호출하는 모든 함수에 전달할 수 있습니다. 원형은 숫자값 또는 공유 라이브러리나 DLL이 할당한 구조의 실제 포인터 같은 포인터 타입이 지니고 있는 모든 타입으로 타입캐스트될 수 있습니다. 이것은 읽기 전용 디스플레이입니다.

  • 기능 프로토타입-

    함수의 C 원형을 디스플레이합니다. 이것은 읽기 전용 디스플레이입니다.

에러 확인

에러 확인 탭을 사용하여 [라이브러리 함수 호출 노드]의 에러 확인 레벨을 지정합니다.

이 탭에는 다음의 구성요소가 포함됩니다:

  • 오류 검사 수준-

    다음 옵션을 포함합니다:

    • 최대-

      [라이브러리 함수 호출 노드]의 에러 확인을 최대 레벨로 활성화합니다. 기본 레벨의 에러 확인 기능 뿐만 아니라, 최대 레벨도 [라이브러리 함수 호출 노드]가 공유 라이브러리에서 호출되거나 또는 DLL이 지정된 문자열 또는 배열 파라미터에 할당된 공간을 초과하여 쓰는 경우 [라이브러리 함수 호출 노드]가 경고를 반환하도록 합니다. 참조에러 확인 탭에서 최대값 컨트롤을 선택하면 [라이브러리 함수 호출 노드]의 실행 속도가 느려지고 메모리 사용량이 늘어납니다. 따라서, [라이브러리 함수 호출 노드]의 사용자 설정을 디버깅하는 경우에만 최대값 컨트롤을 선택하는 것이 좋습니다.

    • 기본값-

      [라이브러리 함수 호출 노드]의 에러 확인을 기본 레벨로 활성화하십시오. 에러 확인의 기본 레벨을 사용하면 LabVIEW는 호출된 공유 라이브러리 또는 DLL을 실행하는 도중에 발생하는 처리되지 않은 예외사항에서 복구될 수 있습니다. 이러한 에러 확인 레벨은 또한 사용자가 함수 탭에서 선택한 호출 형식이 공유 라이브러리나 DDL에서 호출하고 있는 함수의 호출 형식과 일치하지 않는 경우 [라이브러리 함수 호출 노드]가 에러를 반환하도록 합니다.

    • 장애인-

      [라이브러리 함수 호출 노드]의 에러 확인을 비활성화합니다. [라이브러리 함수 호출 노드]의 에러 확인을 비활성화하면 [라이브러리 함수 호출 노드]의 실행 속도를 최적화할 수 있습니다. 그러나 에러가 발생하여 LabVIEW가 비정상적으로 종료될 수 있습니다. 에러 확인을 비활성화하기 전에, [라이브러리 함수 호출 노드]가 참조하는 함수로 인해 처리되지 않은 예외사항이 발생하지 않는지 확인하십시오.

  • 기능 프로토타입-

    함수의 C 원형을 디스플레이합니다. 이것은 읽기 전용 디스플레이입니다.

관련 정보

LabVIEW에서 공유 라이브러리 호출하기

[라이브러리 함수 호출 노드] 설정하기

공유 라이브러리 및 공유 라이브러리 호출 디버깅하기

[라이브러리 함수 호출 노드]

LabVIEW Manager Functions