二进制模块的几种常见依赖关系
来源:互联网 发布:深度卷积对抗生成网络 编辑:程序博客网 时间:2024/05/29 12:41
1. lib库导入依赖:A项目代码编译的时候就需要依赖B项目的lib文件,运行时需要依赖B的dll,不管是不是实际使用B的函数,A运行时肯定会在自己的内存空间中装载B。lib库导入依赖会有两种特殊情况:a)作为一种优化变种,dll可以延迟加载,为此在A的二进制文件中会有一个延迟加载入口表;b)A确实在代码中使用了B的方法b,但b只是调用C的c的一个二传手,那么B和C都是A必须依赖的,可只有B会出现在A的导入入口表中;
2.LoadLibrary依赖:A模块的入口表格中没有B的信息,因此在build和运行过程中不需要B的lib文件, 使用LoadLibrary和GetProcAddress、FreeLibrary这些系统API来使用其他模块。 此类用法常见于对OCXs, COM对象, 和Visual Basic应用。
3. 注入依赖。当B用钩子挂在A的进程中的某个特定事件e上。一旦A的进程产生e,则OS注入一个模块B到进程内部处理该事件。A虽然并不依赖B,但B确实存在于A的进程空间中。
在depends工具中直接打开一个exe,就可以看到情况1的依赖,2和3的依赖要按F7。
- 二进制模块的几种常见依赖关系
- maven的几种依赖关系
- UML的几种常见关系
- 查看linux内核模块依赖关系的三种方法
- UML中关联、泛化、依赖、实现的几种关系
- 添加模块间的依赖关系
- 模块依赖关系
- 几种常见的Android自动化测试工具的关系
- UML类图常见的几种关系
- UML类图常见的几种关系
- Jetty7模块之间依赖关系
- BDF2各模块依赖关系
- 几种二进制的输出
- 我的linux内核模块关系依赖图
- Ubuntu下常见的包依赖关系及满足方法
- 类与类之间的几种关系(继承、实现、依赖、关联、聚合、组合)
- 继承,实现,关联,聚合,组合,依赖几种关系的介绍
- UML中的几种关系(依赖,关联,泛化,实现)
- 凯立德GPS导航地图的文件说明
- datalist 字符串的截取
- 给自己生活的TIPS: 洗衣服的好方法
- [Notes] How to Be a Good Graduate Student
- 1到3小时上班族途中经济
- 二进制模块的几种常见依赖关系
- [Notes] The Researchers’ Bible
- 关于SQL语句中With的用法
- Install flash plugin to Chrome Browser on Ubuntu 9.10
- insertAdjacentHTML方法示例
- 系统设计
- 巧用SQL中的WITH(树型结构数据的查询)
- 跟我一起学Simulink(一)
- Testing Risk Assessment