导入函数列表视图显示模块依赖关系树视图中当前所选模块的导入函数列表。导入函数是父模块在给定模块中实际调用的函数。
对于隐式和前向依赖关系,所选模块需要导出父级从其导入的每个函数。如果所选模块未导出父模块期望调用的其中一个函数,则在尝试加载模块时将发生无法解析的外部错误。请参阅导出功能列表视图以查看所选模块的导出函数。
Dependency Walker在导出的函数列表中搜索每个父导入函数,以确保匹配。如果任何函数未解析,则该函数标记有错误图像(见下文),并且模块在模块依赖关系树视图和模块列表视图中也标记有错误图像。
导入函数列表视图还可以帮助您在应用程序中查找不必要的模块。父模块调用子模块的函数,因此父模块才依赖子模块。作为开发人员,如果您可以避免父模块调用给定模块的函数,那么父模块将不再依赖该模块。
C ++函数可以以其原生修饰方式或以未修饰易读的方式显示。
以下是导入列表中每个函数可能显示的图片:
已解决的C导入函数。
已解决的C ++导入函数。C ++函数可以以其原生修饰形式或以人类可读的未装饰形式查看。有关更多信息,请参阅Undecorate C ++函数命令。
已解决的序号导入函数。
已解决的动态C导入(C ++和序数函数也存在类似的图像)。该模块的父模块调用GetProcAddress函数来动态获取此函数的地址。这并不一定意味着父模块实际使用函数地址来调用函数。
无法解析的C函数(C ++和序数函数也存在类似的图像)。此函数由父模块调用,但不从当前模块导出。这通常被称为“无法解析的外部符号”。如果此模块是隐式或前向依赖项,则父模块将无法加载。如果此模块是延迟加载依赖项,则父模块很可能从缺少依赖项中恢复,因为这是使用延迟加载依赖项的功能。
无法解析的动态C函数(C ++和序数函数也存在类似的图像)。该模块的父模块调用GetProcAddress函数来动态获取该函数的地址,但当前模块不导出该函数。这不一定是错误,因为模块调用GetProcAddress的原因之一是查看模块中是否存在函数。
导入函数视图由五列组成:
|
功能列表可以按列表中任何列中的数据进行排序。只需单击要排序的列的列标题按钮即可。列表(^)显示在列表当前排序的列的列标题中。您还可以通过双击列标题中两列之间的分隔线将列调整为“最佳拟合”宽度。只需键入要查找的项目的前几个字符,即可在当前已排序的列中搜索文本。对于序数和提示值,您可以输入十进制或十六进制(前缀为0x)值进行搜索。