问题标签 [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.

0 投票
0 回答
148 浏览

c++ - 迁移到新的 Windows 7 PC 后 c++ 项目无法正常工作

我在 Windows 7 + NetBeans + MinGW 上有 C++ 项目。他们多年来工作得很好。昨天,由于硬件问题,我不得不使用一台新的 Windows 7 PC。我使用从旧安装中导入的配置文件安装了 NetBeans。我将 MinGW 和我的项目文件夹复制到新 PC。但是它们都不起作用。

我创建了一个 Hello World C++ 程序。Clean & Build on NetBean 没问题,但是运行时说RUN FAILED. 在dos提示符下运行它,它说The application was unable to start correctly (0xc0000013)。将源的文件扩展名从 更改.cpp.c,它工作正常。上网搜了一下,发现[MS-ERREF].pdf错误码的意思STATUS_NO_MEDIA_IN_DEVICE好像不相关。

进一步搜索,找到一个软件Dependency Walker,运行它,发现Error: At least one module has an unresolved import due to a missing export function in an implicitly dependent module.通过DLL树,发现缺少3个导出点InterlockedExchange in KERNEL32.DLL__p__environ in MSVCRT.DLL__p__fmode in MSVCRT.DLL。我可以__p__environ在 MinGW中找到include\stdlib.h但不是__p__fmode.

一些帖子说混合 64 位 dll 和 32 位 appn 可能是原因。但是我的项目都是混合的,它们在我的旧电脑上运行良好。感谢是否有人可以告诉我在哪里寻找原因。

编辑:进一步测试我的Hello World程序,发现如果我使用 cpp 标头,比如#include <cstdlib>or #include <iostream>,编译器找不到它们。所以我重新安装了 MinGW,但这让事情变得更糟。现在我什至无法编译任何 cpp,无论有没有 cpp 的#include. 清理和构建程序导致

请帮忙。

0 投票
1 回答
257 浏览

windows - Dependency Walker 父导入函数列表显示来自不同库的函数

我正在尝试在我的项目中包含一个外部库(.lib 指向 .dll)。我正在使用 QT 在 Windows 上构建(它似乎使用 msvc2010 作为编译器)并且LIBS += <path>/<libraryName>.lib在我的 .pro 文件中有:我在输出可执行文件的目录中有相应的 .dll 文件,因此可以找到它。当程序运行时,我从 QT 得到以下信息:

搜索似乎这种类型的错误可能来自 .dll 文件在某些​​方面与您预期的不同,这似乎至少部分是这里的问题。当我使用dependency walker打开我的程序时,我可以看到找到了我的.dll 文件,并且据我所知,其中的函数看起来是正确的。但是,在父导入功能窗格中,功能不同意或看起来不正确(我想为什么我会收到错误)。这些函数定义与我正在使用的另一个外部库中的函数完全匹配。

对我来说,这表明 .lib 文件不正确,但是我之前在不同的程序(不是 QT 中内置)中使用了这对 .lib/.dll 文件,它们运行良好。此外,我尝试从我的 .pro 文件中删除对 .lib 文件的引用,并且正确的函数调用抱怨(在找到的 .dll 文件中定义的该库中的函数)。.lib 文件看起来完全符合我的预期,使用Dumpbin.exe /EXPORTS查看其内容。

任何关于依赖步行者试图告诉我什么或我现在应该尝试什么的想法都会很棒。

编辑 2/8:我构建了一个最小的示例。它以相同的错误停止,但是在依赖遍历器中而不是显示来自另一个库的函数,它没有显示预期的函数。

0 投票
4 回答
73707 浏览

windows - Dependency Walker:缺少 dll

我一直在尝试使用Dependency Walker解决可执行文件的 .dll 依赖项。目前,我缺少以下形式的 .dll:

API-MS-WIN- XXX

EXT-MS-WIN- XXX

例如:

有人对如何解决这些问题有任何想法吗?任何帮助将不胜感激!

附加信息:我使用Visual Studio 2013编译了可执行文件。最有趣的是我在编译过程中没有收到任何错误。但是,由于缺少依赖项,我无法运行它。我还附上了一个依赖walker的截图:

依赖步行者

更新 1:作为解决问题的尝试,我尝试将 VS 在编译期间使用的库的路径添加到$PATH环境变量中,但没有任何运气(Dependency Walker仍然显示未解决的依赖项)。

0 投票
1 回答
1359 浏览

python - cx_Oracle: ImportError: DLL load failed: 找不到指定的过程

我突然遇到一个问题,我不能再在 python 中导入 cx_Oracle。我知道很多人都遇到过和我类似的错误信息,就是:找不到指定的PROCEDURE。我想知道是否有任何方法可以解决这个问题。

我在跑

我已将路径和 ORACLE_HOME 环境变量设置为 mmy instaclint 12_1 文件夹。

还有什么问题?依赖遍历器显示以下内容:

在此处输入图像描述

这是否意味着它没有找到 OCI.DLL?该文件肯定在 ORACLE_HOME 和 PATH 环境变量中列出的 instaclient_12_1 文件夹中。

0 投票
0 回答
65 浏览

c# - 从 C# 调用“无能”函数 C++ DLL

大多数时候,我知道如何从 C# 中 P/Invoke C++ 函数,但此时,我只知道函数名称,我不知道它返回什么以及应该传递什么样的参数。

我可以通过 Dependency Walker 找到函数名称 功能

正如您可能猜到的,它是关于加密和解密数据包的。
那么,是否有可能找出参数和返回类型?然后从 C# 调用它?

0 投票
1 回答
754 浏览

dll - 依赖walker中的UCRTBASE错误是什么?

我有一个没有在另一台 PC 中注册的 OCX 文件。当我在其上运行dependencyWalker.exe并加载 OCX 时,它显示我缺少一些 dll。我从DLL-File.com下载了其中一些,但它显示了 UCRTBASE 错误。它是什么?我该如何解决?
在此处输入图像描述

0 投票
0 回答
574 浏览

windows - dll不能在不同的机器上工作

我们有一个 32 位 .dll 在远程 32 位机器上运行没有问题。我们已将系统移至另一台机器(64 位),此 .dll 也已移动。

然而,这个 .dll 在新机器上运行没有崩溃,但没有按预期工作(返回自定义错误消息,其原因无法理解)。通常它应该与另一台机器产生相同的结果。我已经使用 Dependency Walker 来检查该 dll 所依赖的缺失 dll。将丢失的 dll 的 32 位版本放在 SysWOW64 下,但不好。

顺便说一下,我们的 dll 可能不仅仅依赖于另一个 dll,它也可能依赖于任何其他文件类型(例如 .ini 等)。在 Windows 上,我们有什么方法可以跟踪 dll 对其他文件的访问,即我们可以看到这个 dll 正在使用哪些文件?

有人对这个案子有意见吗?

0 投票
1 回答
332 浏览

matlab - 由于无效的 mex 文件,cplex 无法在 matlab 上运行

我正在尝试在 matlab 上使用 cplex,但出现以下错误:

我已经添加了如下路径:

我的笔记本电脑在 Windows 10 64 位上运行,我的 matlab 是 R2013a 64 位,cplex 是 cplex 12.7.1 win-x86-64。

我看到了一个类似问题的答案,他们说必须由dependency walker检查。Dependency walker 显示一大堆 API-MS-WIN-CORE、EVENTING、SECURITY、SERVICE、EXT-MS-WIN-GDI 等 dll 文件丢失。

我查看了一些帖子,暗示这些都包含在 Visual C++ Redistributable 包中,因此我安装了 Microsoft Visual C++ Redistributable 的所有版本(只是为了确保 x86 和 x64)。

但我仍然有问题。我在这里想念什么?任何帮助将不胜感激。

0 投票
1 回答
177 浏览

dependency-walker - 了解依赖步行者

在此处输入图像描述

我正在阅读这本书,并试图理解 Dependency Walker。当我选择像 KERNEL32.DLL 之类的东西时,它在右上方窗格中显示 6 个导入,然后当我单击内核的子类(如 NTDLL.DLL)时,为什么列出的导入比选择 kernel32.dll 时要多?我原以为选择 kernel32 会显示其下所有导入的摘要。

0 投票
1 回答
545 浏览

windows - Windows 符号地址定义

我已经提取了一个使用 ETW 在 Windows 中调用的系统调用地址的转储文件。我对地址有些困惑。我只是将 NtOpenFile 用于以后的示例。

1-

我使用 cvdump 转储从 Microsoft 符号服务器 (ntkrnlmp.pdb) 收到的内核 PDB 文件。NtOpenfile 的入口是这样的:

然后我使用 Dependency Walker (DP) 打开 ntoskrnl.exe。我向下滚动并查看 NtOpenFile 的条目:

在此处输入图像描述

然后我使用这段代码收到内核基地址:

内核基地址为:fffff802f7616000

使用 windbg 提取的 NtOpenFile 的实际地址是fffff802f7b0e320 nt!NtOpenFile

使用从 pdb 文件中提取的地址添加内核基址会给我错误的地址(添加来自 DP 结果的地址是正确的)。为什么?

2-

为什么DP打开的.sys文件中没有像NtGdiFlush这样的win32k.sys中的函数?在 Windows 10 中,还有另一个名为 win32kfull.sys 的文件包含这些符号,但在 Windows 7 中没有。

3-

我根本无法映射像 NtQueryVirtualMemory 这样的函数。它存在于 ntkrnlmp.pdb 转储中,但正如我在第 1 部分中所说,地址似乎错误!并且它也存在于 DP 打开的 ntoskrnl.exe 中作为 ZwQueryVirtualMemory。但它与windbg.exe提取的NtQueryVirtualMemory地址不同,这些是如何相互映射的呢?如何使用 DP 或 PDB 文件提取此函数的地址?

4-

如何使用 windbg 找到 win32k.sys 系统调用地址(如 NtGdiFlush 的地址)?该命令kd> x /D nt!Nt*没有给我这些符号地址。