我一直在玩Homeworld 1,为了运行它,您需要运行Windows NT 4兼容模式。拦截与获取Windows Verion相关的API调用
Windows 8没有这个出于某种原因,这是很烦人的。
使用Microsoft应用程序兼容性工具包我发现Homeworld执行API调用来获取Windows版本,它似乎停止工作,除非它认为它在Windows NT上运行(使用调试器我可以看到它要求GetVersion和GetVersionEx)。
http://technet.microsoft.com/en-us/library/cc749574(v=ws.10).aspx
使用上述与微软Applocation COMPAT工具包修正了这个错误,但我玩这个游戏有很多不同的计算机,其中一些不能用上述方法。
有没有什么办法让我做一些封装,拦截API调用并返回它们与上述链接结构,以便该程序认为它在NT上运行?我见过很多DLL放在一个文件夹中,它可以拦截某些调用,但我不确定它们是如何工作的,我假定它们是用C,C++编写的。
我真正知道的唯一一种语言是C#,我认为它不能做我想做的事,所以如果任何人能够指出我正确的方向,帮助,给我提示或指向我在那里我可以得到更多的帮助,这会很棒!
谢谢你的时间!