2012-04-13 2 views
0

하나의 DLL을 만들고 내 Java 프로그램에서 사용했습니다.
Windows XP와 Windows 7.x에서 잘 작동합니다. 그러나 Windows Vista에서 동일한 프로그램을 사용할 때 불만족스러운 링크 오류가 발생합니다.
Vista에서 System.loadlibrary()가 작동하지 않는다는 것을 알게되었습니다 (see this).
System.loadlibrary()에 대한 대체 방법을 제안 해주십시오.
vista에서 System.loadlibrary()를 대체합니다.

답변

0

차라리 종속성 워커 같은 도구 (http://www.dependencywalker.com/)가있는 경우

는이 응용 프로그램은 당신을 말할 수와 라이브러리가 당신의 DLL에서 '소위'있는 것을 확인할 것 경로에 누락 된 DLL. 당신은 또한 자바 프로그램을 시작하기 전에 셸 변수 PATH를 확인할 수 있습니다.

희망이 있습니다.

1

System.loadlibrary()는 Vista에서 잘 작동합니다. 문제는 DLL이나 그 의존성 중 하나를 찾을 수 없다는 것입니다. 대부분의 경우 적절한 MSVC 런타임을 설치해야합니다. 다른 컴퓨터에서 이미 런타임을 설치했기 때문에 일부 컴퓨터에서는이 작업을 수행하지 않고 가끔 벗어날 수 있습니다.

네이티브 코드 컴파일러의 설명서에서이 문제를 해결할 수 없으면 프로필 모드에서 종속 뷰어를 사용하여 System.loadlibrary 오류를 디버깅하는 것이 좋습니다.

0

System.Loadlibrary가 Vista에서 잘 작동하면 링크가 LoadLibrary 자체가 아닌 특정 라이브러리의 문제를 가리 킵니다. LoadLibrary 대신 System.Load를 사용하고 절대 경로를 지정할 수 있습니다 (최소한 라이브러리를로드 할 수 있는지 여부는 알 수 있습니다)