해결책
이러한 유형의 충돌을 방지하기 위해 DLL 함수를 호출하는 동안 LabVIEW가 충돌할 수 있는 여러 이유들을 아래를 통해 확인할 수 있습니다.
1. DLL과 동일한 호출 규칙을 사용하고 있는지 확인하십시오호출 라이브러리 함수 노드의 호출 규칙이 DLL 호출 규칙과 일치하지 않으면 충돌이 발생합니다. 호출 규칙은 아래에 표시된 대로 라이브러리 함수 호출 노드 창의 오른쪽 아래 부분에 지정됩니다.
2. 라이브러리 함수 호출 노드의 모든 입력과 출력을 연결하는지 확인하십시오라이브러리 함수 호출 노드의 모든 입출력을 연결하지 않으면, DLL 함수는 할당되지 않은 메모리를 덮어 쓰게되고 LabVIEW가 충돌하게 됩니다.
참고 : 두 번째 입력이 첫 번째 입력에 대한 포인터인 경우에 첫 번째 입력에는 출력이 필요하지 않습니다.
3. DLL 함수가 LabVIEW 메모리를 덮어 쓰지 않도록 하십시오.충분한 메모리가 할당되지 않았거나 DLL 함수가 할당된 것 이상을 쓰면 DLL은 예약된 LabVIEW 메모리 공간을 덮어 쓰게 되고 LabVIEW가 충돌하게 됩니다. DLL에서 배열, 문자열 또는 파형을 전달하고 읽기 전에 메모리가 올바르게 할당되었는지 확인하십시오.
4. LabVIEW가 함수가 예상하는 형식으로 함수에 매개 변수를 전달하는지 확인하십시오올바르지 않은 매개 변수 데이터 타입 (값, 참조, 핸들 등)을 사용하여 LabVIEW에서 DLL 함수를 호출하면 실수로 잘못된 메모리 위치를 가리키고 데이터가 잘못되거나 LabVIEW 또는 Windows가 손상될 수 있습니다.
5. 함수 호출 자체가 잘못된 무엇가를 합니다.함수가 잘못된 연산을 시도하면 LabVIEW가 충돌할 수 있습니다. 함수 작성자가 아닌 경우 함수 작성자에게 문의하십시오.