DW翻译系列:Dependency Walker处理的模块类型

简介: 文章网址:http://www.dependencywalker.com/help/html/dependency_types.htm 有以下几种模块依赖类型: 1. 隐式依赖(也叫加载时依赖,有时也不当地称为静态依赖):模块A在编译、链接期间隐式地与模块B中的a.lib链接,那么模块A的源码就调用了B中的一个或多个函数。模块B就是模块A的加载时依赖。不管A在运行期间有没有调用B中

文章网址:http://www.dependencywalker.com/help/html/dependency_types.htm


有以下几种模块依赖类型:

1. 隐式依赖(也叫加载时依赖,有时也不当地称为静态依赖):模块A在编译、链接期间隐式地与模块B中的a.lib链接,那么模块A的源码就调用了B中的一个或多个函数。模块B就是模块A的加载时依赖。不管A在运行期间有没有调用B中的函数,B都会被加载进内存。模块B将会被列在模块A的导入表中。


2. 延迟加载依赖:模块A在编译、链接期间延迟与模块B中的a.lib链接,那么模块A的源码就调用了B中的一个或多个函数。模块B就是一个动态依赖,只有当A在运行时调用了B时,B才被加载。模块B列在了A的延迟加载导入表中。


3. 前向依赖:模块A在编译、链接期间与模块B中的a.lib链接,那么模块A的源码就调用了B中的一个或多个函数。而其中的函数实际上又调用了模块C中的函数。那么B,C都是A的依赖,但是只有模块B被列进了A的导入表中。


4. 显式依赖(也称为动态依赖或运行时依赖):模块A没有在编译、链接期间隐式地与模块B链接。A在运行时通过调用LoadLibrary类型的函数调用了B,则B就成了A的运行时依赖,但不被列在A的任何人表中。这种类型的依赖在OCXs,COM对象和Visual Basic程序常见。


5. 系统钩子依赖(也叫注入依赖):当另一个程序在进程中抛出了一个特定事件(像鼠标事件)时,这种依赖就产生了。当进程去处理那个事件时,操作系统就往进程注入了这个模块去处理事件。被注入的模块实际上不是任何其它模块的依赖,但它确实驻留在进程的地址空间中。


DW完全支持以上几种技术加载的模块。在DW中打开一个模块,就能检测出1、2、3三种类型的模块。4、5两种类型的依赖需要在运行时被解析,这也是DW2.0的新特性。关于解析,参考使用应用程序解析检测动态依赖一节。

目录
相关文章
|
2月前
|
存储 API 数据库
如何使用 ef core 的 code first(fluent api)模式实现自定义类型转换器?
本文介绍了如何在 EF Core 的 Code First 模式下使用自定义类型转换器实现 JsonDocument 和 DateTime 类型到 SQLite 数据库的正确映射。通过自定义 ValueConverter,实现了数据类型的转换,并展示了完整的项目结构和代码实现,包括实体类定义、DbContext 配置、Repositories 仓储模式及数据库应用迁移(Migrations)操作。
64 6
如何使用 ef core 的 code first(fluent api)模式实现自定义类型转换器?
|
3月前
|
Java
Java应用结构规范问题之在biz层的convert包实现转换的问题如何解决
Java应用结构规范问题之在biz层的convert包实现转换的问题如何解决
|
6月前
|
设计模式 测试技术 Go
Go 项目必备:Wire 依赖注入工具的深度解析与实战应用
在现代软件开发中,依赖注入(Dependency Injection,简称 DI)已经成为一种广泛采用的设计模式。它的核心思想是通过外部定义的方式,将组件之间的依赖关系解耦,从而提高代码的可维护性、可扩展性和可测试性。然而,随着项目规模的增长,手动管理复杂的依赖关系变得日益困难。这时,依赖注入代码生成工具就显得尤为重要。在众多工具中,Wire 以其简洁、强大和易用性脱颖而出,成为 Go 语言项目中的宠儿。本文将带你深入了解 Wire 的安装、基本使用、核心概念以及高级用法,并通过一个实际的 web 博客项目示例,展示如何利用 Wire 简化依赖注入的实现。准备好了吗?让我们开始这场代码解耦的奇
|
Java Apache
超实用!教你如何在POI-TL框架中熟练使用Configure类,快速完成Office文档生成!
POI-TL是一个用于生成Office文档的Java库,Configure类是该库中的一个配置类,其作用是提供了一些全局的配置选项,可以用于定制化生成的文档。
485 0
|
前端开发 JavaScript Android开发
02HUI - 部署及文档结构
02HUI - 部署及文档结构
63 0
ADS1292R寄存器参考配置
ADS1292R的调试需要先配置好寄存器,这里提供一份咸鱼调试好的寄存器参考配置,希望对大家有所帮助。只使用通道1,采样率为250HZ,可以检测呼吸信号,使能右腿驱动。在电脑的绘制出心电图如下图所示:
318 0
|
Java 编译器 Go
你有没有使用过这些编程骚操作(一)- Lombok(Part A)(上)
你有没有使用过这些编程骚操作(一)- Lombok(Part A)
你有没有使用过这些编程骚操作(一)- Lombok(Part A)(上)
你有没有使用过这些编程骚操作(一)- Lombok(Part B)(下)
你有没有使用过这些编程骚操作(一)- Lombok(Part B)
你有没有使用过这些编程骚操作(一)- Lombok(Part B)(下)
|
IDE 开发工具
你有没有使用过这些编程骚操作(一)- Lombok(Part A)(下)
你有没有使用过这些编程骚操作(一)- Lombok(Part A)
你有没有使用过这些编程骚操作(一)- Lombok(Part A)(下)
|
Java Maven
你有没有使用过这些编程骚操作(一)- Lombok(Part B)(上)
你有没有使用过这些编程骚操作(一)- Lombok(Part B)
你有没有使用过这些编程骚操作(一)- Lombok(Part B)(上)