2010-02-09 2 views
1

고객의 Windows 컴퓨터에서 시작할 때 perl 프로그램이 충돌합니다.레지스트리 모듈을 사용하면 액세스 위반으로 Perl이 손상됩니다.

use Win32::TieRegistry(Delimiter=>'\\'); 

그것은 제로 포인터를 액세스하기위한 액세스 위반으로 충돌 :이 라인을 포함 할 경우 추가 시험은 우리가 제공하는 펄 배포, 간단한 "Hello World」의 스크립트가 작동하는지 보여 주지만, 휴식. 스택은 registry.dll을 가리 킵니다.

이 문제를 어떻게 해결할 수 있습니까? 나는 구글 검색에서 그것에 대해 아무것도 발견하지 못했고 내 환경에서 그것을 재현 할 수 없다.

+1

해당 사용자가 레지스트리에 액세스 할 수 있습니까? 잠긴 컴퓨터가있는 회사에 스크립트를 제공하는 경우 사용자가 레지스트리를 읽거나 쓸 수있는 충분한 액세스 권한이 없을 수 있습니다. –

+0

감사합니다 잭, 고객과 확인해 보겠습니다. 이것은 TieRegistry 모듈을 "사용"할 때 액세스 위반을 설명 할 수 있습니까? – splintor

답변

1

사용중인 펄 버전을 알려주시겠습니까? 그것은 Activestate 또는 Strawberry Perl입니까?

일반적으로 일부 비 perl 코드에서는 액세스 위반이 프로그래밍 오류입니다. 오류가있는 registry.dll이 될 수 있습니다. 그것을 추적하기 위해서는 아마도 소스 코드 및/또는 디버거가 필요할 것입니다. 나는 registry.dll이 펄 (Win32 :: TieRegistry의 XS/C 코드 부분 또는 Win32 :: TieRegistry에 의해 사용되는 Win32API :: Registry)의 일부로 제공되는 DLL이라고 가정하고있다. 이 가정을 확인하려면 registry.dll의 전체 경로를 제공 할 수 있습니까? 액세스 위반 대화 상자에 표시됩니다.

+0

이것은 오래된 불일치 Perl 버전이 컴퓨터에 설치 되었기 때문일 수 있습니다. 동료가 문제의 해결 방법을 찾았지만 그것이 무엇인지 정확히 알지 못합니다. 어쨌든 고마워. – splintor