MSFT DLL导入库的用途

时间:2016-09-20 13:25:11

标签: windows dll

我已经阅读了关于这个主题的Raymond Chen's Blog,我仍然不确定为什么需要导入库。

他说:

  

按照惯例,标准化名称是未修饰的名称,这些未修饰的名称遵循Win32 ABI规则(不是C ++规则或Delphi规则或其他任何内容)。导入库的工作是弥合编译器导入的修饰名称与DLL导出的未修饰名称之间的差距。把它想象成一个thunk库。为什么链接器不会自动生成这些thunk?因为在经典模型下,链接器不会生成代码。 -Raymond

AFAIK,所有导入库都是

  1. 提供链接时验证,导入的符号实际上是由某些DLL导出的
  2. 在.exe中的某些表中填写有关在何处找到相应DLL的信息,以及需要填写IAT中的哪些符号? (不知道它是怎么做的)
  3. 但显然有链接的实际存根?这些存根有什么作用?

0 个答案:

没有答案