DLL이 NI PharLap ETS 기반의 LabVIEW Real-Time 컨트롤러에서 실행 가능 여부를 어떻게 확인할 수 있습니까?



주요한 소프트웨어:
주요한 소프트웨어 버전: 2009 SP1
문제가 해결된 소프트웨어 버전: N/A
부차적인 소프트웨어: N/A

문제점:  DLL을 만들어서 NI PharLap ETS 기반의 LabVIEW RT 컨트롤러에서 실행하고 싶습니다. 이 DLL이 실행 가능 여부를 확인할 수 있는 방법이 있습니까?

솔루션:

Note: 이 내용은 NI PharLap ETS에만 해당되는 내용입니다.

 National Instruments는 C 기반의 공유 라이브러리를 위한 CVI Real-Time을 사용하길 권장합니다. 이는 원격 디버깅을 허용합니다. 만약 공유 라이브러리가 C++ 기반일경우, National Instruments 는 VC6 이나 VC7.1 컴파일러를 사용하길 권장합니다. 다른 컴파일러들은 컴파일이 될때, 연결을 위해 런타임 컴포넌트를 필요로 하여 만들어진 DLL이 RT에서 모든 기능을 지원하지 않을 수 있습니다.

만약 DLL이 윈도우 기반에서 잘 동작한다면 아마도 LabVIEW Real-Time (NI PharLap ETS)에서도 잘 동작 할 것입니다. 그러나 만약 작성한 코드가 Win32에 포함되지 않은 함수를 호출한다면, 그 코드는 오류가 발생할 것입니다. 그 에러는 예를들어 아래와 같은 메세지를 보일 것입니다:


첨부된 유틸리티를 사용하시면 해당 DLL이 real-time OS에서 동작이 가능한지 결정하는데 도움이 됩니다. 각 LabVIEW Real-Time 버전에 따라 사용하시면 됩니다.

3가지의 카테고리로 정렬이 됩니다 : Good, Stubbed, Bad


 

LabWindows/CVI는 Build»Target Settings 에서 LabVIEW Real-Time 환경에서 동작 가능한 DLL을 빌드할 수 있습니다. CVI가 지원하지 않거나 잘못된 함수를 체크하는 동안 테스트를 할 수는 없습니다. LabVIEW real-time에서 동작을 한번 더 검토하기 위해서 첨부된 유틸리티를 사용하십시오.

LabVIEW Real-Time을 위한 DLL 만들기에 더 많은 정보를 얻고 싶으시면 아래의 관련 링크를 참고하시기 바랍니다.

Note: 만약 이 유틸리티가 어떤 DLL에 의존되어 있다면(ex: wsock32.dll), 현재 real-time 타겟에 존재하거나  <National Instruments>/RT Images에 존재하는 버전을 사용하십시오. 이 DLL들은 같은 이름이라도 윈도우 버전에 따라 다를 수 있습니다.


자동 DLL 체커

 LabVIEW 2013 이상 버전에서는  DLL Checker를 추가 구문과 함께 호출하여 사용 가능합니다. 이는 프로그램이나 배치 스크립트에서 체크가 가능하도록 합니다.

사용 구문은 다음과 같습니다.

-- -d "<path to dll>" -l "<path to log file>" -include "<path to DLL includes>"

LabVIEW에서 자동으로 체크하는 예제가 아래에 있습니다.


-d "<path to dll>" - 체크하고자 하는 dll의 경로를 설정합니다.

-l "<path to log file>" - 체크한 로그의 결과를 어디에 저장할지 경로를 설정합니다. 만약 경로에 파일이 존재하지 않으면 새롭게 생성합니다.

-include "<path to DLL includes>" - 기본적으로 DLL 체커는 -d 명령으로 메인 dll만 체크합니다. 의존성있는 dll들도 체크하기 위해서 -include 플래그도 사용이 가능합니다.



관련 링크: KnowledgeBase 320HIP2Y: How Can I Debug a DLL in LabVIEW RT?
KnowledgeBase 3GD9T8SU: Can I Use MS Visual C++.NET (7.x) To Build DLLs Using the Real-Time Workshop for NI Real-Time Targets?
Developer Zone: Using LabWindows/CVI DLLs in LabVIEW Real-Time Applications
,
KnowledgeBase 320HIP2Y: How Can I Debug a DLL in LabVIEW RT?
KnowledgeBase 3GD9T8SU: Can I Use MS Visual C++.NET (7.x) To Build DLLs Using the Real-Time Workshop for NI Real-Time Targets?
Developer Zone: Using LabWindows/CVI DLLs in LabVIEW Real-Time Applications

첨부:


DLL Checker 7.0.exe - DLL Checker 7.0.exeDLL Checker 7.1.1.exe - DLL Checker 7.1.1.exeDLL Checker 8.0.exe - DLL Checker 8.0.exeDLL Checker 8.2.exe - DLL Checker 8.2.exeDLL Checker 8.5.1.exe - DLL Checker 8.5.1.exeDLL Checker 8.6.exe - DLL Checker 8.6.exeDLL Checker 2009.exe - DLL Checker 2009.exe
DLL Checker 2010.exe - DLL Checker 2010.exe



리포트 날짜: 07/23/2004
마지막 업데이트: 04/28/2015
문서 번호: 3BMI76L1