读取依赖性walker输出

Los*_*ost 10 c# c++ dll pinvoke dependency-walker

我在我的应用程序中使用其中一个Dll时遇到了一些问题,并在其上运行了依赖walker.我不知道如何阅读它,但我得到了以下结果在此输入图像描述

它是否暗示任何x86-x64不兼容?无论如何我能解决这个问题吗?

Error: At least one required implicit or forwarded dependency was not found.
Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.
Error: Modules with different CPU types were found.
Warning: At least one delay-load dependency module was not found.
Warning: At least one module has an unresolved import due to a missing export function in a delay-load dependent module.
Run Code Online (Sandbox Code Playgroud)

Dav*_*nan 8

当你在64位版本的Dependency Walker中查看32位可执行文件时,通常会看到那种视图.因为Dependency Walker是64位,当它试图在DLL搜索路径上查找DLL时,它会找到64位版本.您的32位程序将在WOW64仿真器中运行并找到32位版本.

因此,您提供的屏幕截图,没有什么值得关注的.

如果您的应用程序存在依赖性问题,我建议您在Dependency Walker的配置文件模式下运行程序(从"配置文件"菜单项).这将为您提供有关加载时和运行时实际发生情况的详细诊断.您在上面提供的屏幕截图来自静态分析,并且必要时,这种静态分析始终是不完整的,并且会受到不准确的影响.确保程序加载时发生的事情的唯一方法是在加载时调试它.

  • **TL; DR**:要检查32位exe,请使用32位版本的Dependency Walker.同样,对于检查64位exe,请使用64位版本的Dependency Walker. (4认同)