DW翻译系列:父类导入函数列表

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


父类导入函数列表显示了在模块依赖树型图中所选中的模块的父类导入函数的列表。父类导入函数就是指那些在当前模块中被调用的父模块的函数。


对于隐式和前向依赖,被选模块需要导出其父模块要从中导入的每一个函数。如果被选模块没有导出父模块要调用的函数,则当模块尝试加载时,一个未能解析的外部错误就会发生。参考导出函数列表可查看被选模块的导出函数。


DW为每一个父类导入函数搜索导出函数列表以匹配。如果有函数不能解析,此函数就会被标注错误图标,这个模块也会在树型图和模块列表图中被标注错误图标。


父类导入函数列表也可帮助你定位程序中的不必要的模块。父模块调用当前模块的函数就会使得当前模块成为了父模块的依赖。作为开发者,如果能安全地防止父模块调用一个给定模块中的父类导入函数的话,那么这个模块就不再是父模块的依赖了。


C++函数的显示有两种方式:名称修饰格式和易读的非名称修饰格式。(后面的一些话没太大意义,就不译了)


下面主要是父类导入列表中每一个函数旁边的图标类型:

     被解析的C导入


    被解析的C++导入。有两种方式可以查看,在View菜单下


     被解析的按序导入


   被解析的动态C导入(和在C++和序函数中的图标是相似的)这类模块的父模块调用GetProcAddress函数去动态地获取这个函数的地址。这不一定意味着父模块实际使用了这个地址去调用此函数


     不能解析的C函数(和在C++和序函数中的图标是相似的)这个函数被父模块所调用,但没有被当前模块所导出。这种情况常被称为“不能解析的外部函数”。如果这个模块是一个隐式和前向依赖,则父模块不能被加载;如果此模块是一个延迟加载依赖,则父模块很有可能从丢失的依赖中恢复,这是使用延迟依赖的一个特性。


    不能解析的动态C函数(和在C++和序函数中的图标是相似的)这个模块的父模块调用GetProcAddress函数去动态获取这个函数地址,但当前模块并未导出此函数。这通常不是一个错误,因为模块调用GetProcAddress可能就是想测试一个函数是否存在于一个模块。


父类导入函数列表由五列组成:




函数列表可在任意一列进行排序。只需单击你想排序的那一列的头部即可,此时头部就会有“^”的字样。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值