【问题标题】:Creating application compatibility shims for Windows [duplicate]为 Windows 创建应用程序兼容性垫片 [重复]
【发布时间】:2012-03-19 05:04:42
【问题描述】:

This blog post 提到如何创建自己的垫片。

我不明白的是:

当更新版本的 DLL 出现(具有更多导出函数)时,这种技术不会失效吗?

即如果您完全覆盖使用 shim DLL 的目标 DLL,那么对于您没有/无法为其实现重定向的函数您会怎么做?

【问题讨论】:

  • 是的,我希望它会在更新版本的 DLL 出现时中断。什么给了你不同的印象?
  • @CodyGray:嗯...我希望它是一种更透明的钩子,否则您可能需要为每个新版本的 DLL 使用新的填充程序(这听起来不可扩展)。
  • 本文创建的 shim 不是应用程序兼容性 shim。如您所述,它被硬编码为目标 DLL 的特定版本。
  • @RaymondChen:哦,呵呵,很有趣...但是如何创建应用程序兼容性垫片? (或者更确切地说,它们首先是什么?DLL 还是其他什么?)
  • 第三方无法创建新的兼容性垫片。 Windows 应用程序兼容性团队创建填充程序。

标签: c windows winapi shim


【解决方案1】:

这不是唯一的方法。

最简单的解决方案可能是使用Detours,尽管免费版本仅为 32 位且用于非商业用途,而付费版本非常昂贵。

This article 描述了一堆自己做的方法。

【讨论】:

    猜你喜欢
    • 2011-08-01
    • 2018-07-10
    • 2013-05-13
    • 1970-01-01
    • 2017-04-30
    • 1970-01-01
    • 2018-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多