DLL包装器和DLL之间的区别

sam*_*rat 4 c++ windows dll

我不知道什么是DLL包装器.有人可以解释一下
1)什么是DLL包装器?
2)它与DLL有何不同?
3)如何使用它?

感谢致敬,

Ret*_*zan 9

当程序使用DL​​L时,它是这样的:

  • 应用程序加载foo.dll
  • 应用程序调用foo.dll中的函数
  • foo.dll执行函数并将值返回给应用程序

使用包装器DLL,会发生这种情况:

  • 应用程序加载foo.dll(不知道或关心foo.dll实际上是包装器,原始DLL已重命名为foo_original.dll)
  • foo.dll加载foo_original.dll
  • 应用程序调用foo.dll中的函数
  • foo.dll将调用转发给foo_original.dll
  • foo_original.dll执行函数并将值返回给foo.dll
  • foo.dll将值返回给应用程序

这使DLL包装器有机会检查/记录应用程序对原始DLL进行的所有调用,以及修改在两者之间传递的数据的机会.