6

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

谢谢并恭祝安康,

4

2 回答 2

11

当程序使用 DLL 时,它是这样的:

  • 应用程序加载 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 的所有调用,以及修改在两者之间传递的数据的机会。

于 2013-02-28T10:39:00.317 回答
3

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

于 2013-02-28T10:19:05.950 回答