2017-03-22 1 views
0

저는 Delphi 코드에서 끊임없이 호출하려고하는 Matlab DLL을 가지고 있습니다. 이렇게하려면 Loadlibrary()을 사용하고 'module not found'오류 126을 반환합니다.kernel32.dll의 누락 된 종속성

의존성 워커 덕분에 문제가 kernel32.dll에서 발생할 수 있다는 것을 알았습니다. 아래의 스크린 샷에서 볼 수 있듯이 윈도우 API에서 해당 종속성 중 많은이 (내가 이해로) 누락되거나되지는 찾을 수 있습니다

dependencies

어떻게이없는 DLL을받을 수 있나요? Windows 관련 내용을 다시 설치해야합니까?

+2

아니요, 여기에는 의존성이 없습니다. 물론'API-MS-WIN- * '이 존재합니다. 이것은 단순히 종속성 워커가 잘못 처리하는 것입니다 – RbMm

답변

1

위양 반응입니다. 그 출력은 완벽하게 정상입니다. 32 비트 DLL과 64 비트 종속성 워커를 혼합하거나 그 반대의 경우도 있습니다.

무엇이 잘못되었는지 확인하려면 종속성 워커에서 프로파일 링 옵션을 사용하십시오. DLL 로딩 프로세스를 모니터링하고 실패한 위치에 대한 보고서를 제공 할 수 있습니다.

설명에 따르면 Matlab 런타임 또는 MSVC 런타임의 종속성을 해결하지 못하는 경우가 많습니다.

+0

MSVC 런타임 dll이 가장 가능성이 큽니다, 나는 dll이 찾고있는 것을보기 위해로드 이미지 필터가있는 프로세스 모니터를 사용할 것을 제안합니다. https://technet.microsoft.com/en-us/sysinternals/processmonitor.aspx – Remko

+0

그렇게 할 수 있습니다. Dependency Walker는보다 집중된 방식으로 동일한 정보를 제공합니다. –

+0

Dependancy Walker가 정적으로 링크 된 DLL을 능가 할 수 있다는 것을 알지 못했지만 새로운 것을 배웠던 것 같습니다. 건배 ... – Remko

관련 문제