DLL包装器和DLL的区别



我不知道什么是DLL包装。谁能给我解释一下?
1)什么是DLL包装?
2)与DLL有何不同?
3)如何使用?

Thanks and regards

当程序使用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的所有调用,并有机会修改两者之间传递的数据。

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

最新更新