DLL包装器和DLL之间的区别

时间:2013-02-28 10:00:13

标签: c++ windows dll

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

谢谢和问候,

2 个答案:

答案 0 :(得分: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进行的所有调用,以及修改在两者之间传递的数据的机会。

答案 1 :(得分:2)

DLL包装器调用另一个dll来提供所需的功能。出于简单性或兼容性原因,它可能会也可能不会提供其特殊的API。 This is a tutorial,展示如何制作包装器DLL。 在这个特定的教程中,DirectX 9的一些类被包装并用于在Blitz3D窗口内渲染一个茶壶。