실행 파일이 지정된 경로의 DLL을 찾을 수 없음

업데이트 됨 Jul 31, 2023

해당 제품

소프트웨어

  • LabVIEW Base
  • LabVIEW Full
  • LabVIEW Professional

문의사항

라이브러리 함수 호출 노드와 함께 DLL을 호출하는 VI가 있습니다. 개발 환경에서는 DLL이 올바르게 호출되고 응용 프로그램이 예상대로 작동합니다. 그러나 실행 파일을 빌드하면 DLL을 찾을 것인지 묻는 메시지가 나타납니다. 이를 나타나지 않게 하려면 어떻게 합니까?

해결책

실행 파일은 특정 디렉토리에서 DLL을 찾습니다. Windows는 DLL을 순서대로 검색합니다.
  

  1. 실행 파일이 실행중인 현재 디렉토리
  2. Windows 시스템 디렉토리 ( <Windows>\System32 )
  3. PATH 환경 변수에 지정된 모든 경로

  
기본적으로 LabVIEW는 라이브러리 함수 호출 노드로 호출 된 대부분의 DLL을 data 실행 파일 의 디렉토리에 복사  합니다.

추가 정보

당신의 어플리케이션에서  user32.dll 또는 다른 WinAPI를 사용하려고 한다면, 실행 파일을 실행하려고 할 때 다음과 같은 오류가 나타날 수 있습니다.

Entry Point Not Found: The procedure entry point wcscat_s could not be located in the dynamic link library ntdll.dll.

공유 라이브러리를 호출하는 실행 파일을 빌드하면, LabVIEW는 data 빌드의 지원 디렉토리에 DLL의 로컬 복사본을 포함시킵니다. 실행 파일이 실행되면, LabVIEW 런타임 엔진은 먼저 이 디렉토리에서 공유 라이브러리를 검색합니다. 이렇게 하면, 런타임 엔진이 배포된 컴퓨터에서 잘못된 버전의 WinAPI DLL을 호출하여, 다양한 문제가 발생할 수 있습니다. 

 

만약 System Directory에 위치한 WinAPI DLL을 호출한다면, 다음 세 가지 옵션이 있습니다.
   

  • 라이브러리 함수 호출 노드에 경로를 포함하지 않은 DLL 파일 이름 자체만을 입력하십시오. 이렇게하면 data 응용 프로그램을 빌드 할 때 디렉토리에 DLL 사본이 작성되지 않습니다.
  • data 디렉터리 에서 WinAPI DLL을 삭제하십시오. 실행 파일은 이제 실행 파일을 시작할 때마다 DLL을 검색합니다. 실행 파일의 VI 검색 경로 ( 도구»옵션»경로»VI 검색 경로 )에  <Windows>\System32 폴더를 추가 하여 이 문제를 해결하십시오  .
  •  라이브러리 함수 호출 노드의 대화 상자에서 다이어그램의 경로 지정을 선택 하고, 공유 라이브러리의 경로를 블록 다이어그램의 입력 경로에 코딩하십시오.