REGSVR32가 명확하게 존재하는 DLL을 찾지 못하는 이유는 무엇입니까?


8

새로운 Windows 2003 Server에 사용자 지정 응용 프로그램을 설치하고 있습니다. 두 개의 DLL을 추가하고 등록해야하며, C : \ WINDOWS \ System32 폴더의 서버에 복사했습니다.이 폴더는 Windows NT 및 2000에서 응용 프로그램을 실행했을 때 항상 있었던 위치입니다. .

그러나 다음을 사용하여 등록하려고 할 때 :

regsvr32 c : \ windows \ system32 \ nameoflibrary.dll

그것은 돌려줍니다 :

LoadLibrary("c:\windows\system32\nameoflibrary.dll") failed - 
The specified module could not be found.

그러나 DLL은 바로 거기에 있습니다. 볼 수 있습니다. Windows 탐색기의 경로를 복사하여 실행하려고하면 DLL을 실행할 수 없다는 메시지가 표시되므로 경로가 있음을 알 수 있습니다. 사소한 복잡한 문제는 DLL이 VB5에 구축되었지만 VB5 런타임이 서버에 설치되어 있기 때문에 문제가되지 않는다는 것입니다.

어떤 아이디어?


64 비트 Windows 2003 서버입니까?
jscott

아니요, 32 비트입니다.
Cyberherbalist

답변:


6

종속 모듈이 누락되었을 수 있습니다. 모듈을 찾을 수없는 이유를 판별하려면 getlasterror 코드를 확인해야합니다.


네. 기본 응용 프로그램에서 설치해야하는 모듈이 설치되지 않았습니다. 이 문제가 해결되면 두 DLL이 올바르게 등록되었습니다.
Cyberherbalist

7

짐 비는 아마 맞을 것입니다. 가져 DependencyWalker를 로드는 {nameoflibrary.dll은} -이없는 의존하는 DLL을 보여줍니다.


업데이트 된 방법은 Visual Studio bin 디렉토리에서 dumpbin.exe를 사용하는 것입니다.dumpbin /dependents <file.exe/dll>
hLk
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.