问题标签 [dependency-walker]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
linux - Linux 的 Dependency Walker 等效项?
我需要一个工具来以某种图形方式显示所有共享库依赖项,而不仅仅是ldd
在每个.so
. 对于 MS Windows Dependency Walker有效。有什么适用于 Linux 的吗?
.
java - 使用 Dependency Walker 验证 DLL 中的 C 函数
我是依赖 walker 的新手,我正在尝试确定我的 dll 是否包含我试图通过 JNI 从 Java 调用的 C 函数。当我在 Dependency Walker 中选择应该包含 C 函数的 dll 时,我得到了导入和导出函数。导入列表具有 setLogLevel 函数,但入口点未绑定(与此列表中的所有函数一样)并显示为带有 c 的绿色框。导出列表 as 具有 setLogLevel 函数,并以 0x00003C25 作为入口点。当我尝试从 JAVA/JNI 调用 setLogLevel 时,我得到以下信息。我不确定导入/导出是否正确,有人可以确认吗?
windows-7-x64 - 使用 Dependency Walker 分析 x86 可执行文件在 Windows 7 x64 上挂起
在 Windows 7 x64下,当我尝试使用最新版本的 Dependency Walker (2.2.6000) 分析x86可执行文件时,分析过程总是在某个点挂起。大多数情况下,加载的最后一个 DLL 是c:\windows\syswow64\URLMON.DLL
,因此该 DLL 中的某些东西似乎导致了问题。在 Windows 7 x86上分析相同的可执行文件可以完美运行。
我已经在谷歌上进行了广泛的搜索,但无法找到解决问题的方法。我发现的一个建议是卸载 IE 8 或 IE 9 并将其替换为 IE 7,但这并没有真正的帮助。我能观察到的唯一效果是,对于 IE 7,分析过程挂在不同的 DLL 上(iertutil.dll
如果我没记错的话,也来自系统的syswow64
文件夹)。
所以我的问题是:如何让 Dependency Walker 在 x64 Windows 7 上分析 x86 应用程序?当然,如果一开始就知道问题存在的原因也很好:-)
一些最后的笔记:
- 我正在使用 x86 版本的 Dependency Walker,因为我想分析 x86 可执行文件
- 以管理员身份运行 Dependency Walker 无济于事
- 所有标记为“可能在 WOW64 上失败”的分析选项都被禁用
- 我目前用作重现问题的测试用例的可执行文件是 Sumatra PDF 查看器(下载链接),因为它是一个简单的 .exe,不需要安装
c# - Visual Studio:加载 DLL 时出错
我有一个 C# dll 并想将其导入 stdafx.h(JNI 的另一个 DLL): import "C:\Users\Marcus Tik\Documents\Visual Studio 2010\Projects\DotNETSpy\DotNETSpy\bin\Release\DotNETSpy .dll”-> Visual Studio 说:“加载 DLL 时出错。”
然后我使用了 Dependency Walker,它显示错误:“找到具有不同 CPU 类型的模块”。
C# DLL 支持不同的 CPU 类型不是标准吗?我怎样才能解决我的问题?提前谢谢!
dependency-walker - Dependency Walker 如何工作?
我希望能够编写自己版本的依赖遍历器工具(我认为这是学习事物的好方法)。但是,给定一个 PE 文件(dll/exe),我没有必要的知识能够知道——它的依赖是什么。
我希望能参考一个可以为我提供这些知识的地方(教程/文章/文学/等..)。
谢谢!
windows - DLL 在机器上工作,而在另一台机器上则不行。相同的配置
我有一个需要在 Java 应用程序中使用的 DLL。这已经使用 Windows 32 位服务包 3 制作,因此 DLL 可以正常工作。现在我有另一台具有相同配置的机器需要使用它。
当我尝试在 java 中加载 lib 时,会出现以下错误:
当我在第一台机器上用Dependency Walker打开 DLL 时,没有问题发生,但是当我在机器上打开 DLL 时,它不起作用
这意味着什么?我尝试使用命令Regsvr32注册 dll,但显示了相同的错误。
dll - JNA 尝试访问本机 DLL 并获取模块未找到错误,缺少依赖项
我已经安装了 Visual Studio 2010 并且有一个我从其他人那里得到的项目,我可以成功地构建它而不会出现任何错误。我得到一个 Wrapper.dll,我想使用 JNA 访问它。我正在使用 Win7 64 位。
但我收到错误:java.lang.UnsatisfiedLinkError: Unable to load library 'Wrapper': The specified module could not be found。
Wrapper.dll 当然在正确的文件夹中,它是一个 32 位的 dll,我的 Java 程序也使用 32 位的 JRE,所以这不是错误的原因。
我使用 DependencyWalker 检查是否缺少 *.dll:
- MSVCP80.DLL
- MSVCR80.DLL
- GPSVC.DLL
- IESHIMS.DLL
是的,有一些缺失。我可以断定该错误与这些 DLL 丢失有关吗?但是为什么 Visual Studio 编译正确并且不抛出错误呢?如何解决这个问题以便访问 Wrapper.dll 中的这些函数?
我还读到下载 dll 可能不是正确的做法!(我知道 Wrapper.dll 依赖于另一个在 Visual Studio 2005 中构建的 dll 或源代码,如果感兴趣的话。)
编辑:
我发现 Wrapper.dll 依赖于其他三个可能是基于 MSVS2005 构建的 dll。这些需要上面提到的DLL(用dependencywalker检查),我猜因此Wrapper.dll也链接它们。
那么我该怎么做才能摆脱这些旧的 dll 呢?我是否需要使用 VS2010 构建其他三个 DLL,或者这是一个总是会出现的问题,这意味着您需要复制粘贴旧 DLL 才能使用依赖于这些的预编译库。
有没有办法让程序也可以在任何其他系统上运行而无需复制粘贴这些 DLL?
dll - 我的电脑中相同的dll文件是x64,但在另一台电脑上它们是x86,奇怪
我有一个程序,它具有MSVCP100D.DLL
和MSVCR100D.DLL
x64 版本的依赖关系。
这是我电脑中DependencyWalker的截图:
当我将此程序复制到我朋友的计算机时,它无法运行,因为没有这两个文件。然后我将2个dll文件复制到他的电脑上。
但是在执行程序的时候报错了,我用dependency walker检查的时候发现了一个很奇怪的东西。这是他的截图:
为什么它们在我的计算机中是“x64”而在他的计算机中是“x86”?如何解决?
更新
我朋友的系统也是win7 x64。
c++ - 无法在 Windows 中运行 Qt 应用程序
我使用 MinGW GCC 创建了默认 MainWindow 的可执行文件(没有更改任何代码),并将 .exe 文件从调试目录移动到另一个目录,其中我有QtCored4.dll、QtGuid4.dll和QtNetworkd4.dll。
当我单击可执行文件时,我收到错误消息:
程序入口点_ZN7QWidget8winEventEP6tagMSGPI在动态链接库QtGuid4.dll中找不到。
使用 Dependency Walker 打开我的可执行文件会给我以下通知:
错误:由于隐式依赖模块中缺少导出函数,至少一个模块具有未解析的导入。警告:至少没有找到一个延迟加载依赖模块。警告:由于延迟加载依赖模块中缺少导出功能,至少有一个模块存在未解析的导入。
我真的不知道我要去哪里错了,希望有任何帮助。谢谢!