Windows:如何创建自定义appcompat填充程序(应用程序修复程序)?

Ian*_*oyd 12 windows compatibility shim

Windows能够将填充程序应用于错误行为的应用程序.垫片用于拦截API调用并更改它.例如,垫片可用于:

  • 更改传入的参数
  • 说谎的回报值
  • 改变它来调用别的东西

应用程序兼容性的无线工具包已经可以应用到自己的错误,应用程序运行得相当多的现有的垫片.下面是一个忽略API调用而是调用完全不同的API的示例:

alt text http://i34.tinypic.com/5n5h5c.png

我需要一个垫片,这不是微软已经写过的数百个垫片之一.我需要一个自定义垫片.

在我的情况下,我想拦截调用:

GetSystemMetrics(0x1000)
Run Code Online (Sandbox Code Playgroud)

所以它返回0.我找不到任何关于如何给我自己的DLL的信息,这将有我需要的修复.我甚至不知道你是否可以创建自定义垫片.

Windows是否支持自定义填充程序?

Rei*_*man 6

除了Microsoft实现appcompat shim之外,我不知道有什么方法.

您可能想要调查Detours,它可能会提供您想要的功能.