gpt4 book ai didi

windows - 为什么较新的 Windows 版本仍支持某些旧的 Win16 API?

转载 作者:可可西里 更新时间:2023-11-01 10:55:57 26 4
gpt4 key购买 nike

我最近在 MoleBox 打包的可执行文件上修复了一些 IAT,发现它链接了 kernel32 函数:'_lopen'、'_lwrite' 和 '_lread'。这site声明提供这些 API 是为了与 16 位版本的 Windows 兼容。我不知道“Win16”应用程序不能在长模式下执行(是的 - 我正在运行 Win8.1 x64)- 那么那些仍然包含在“kernel32.dll”中的目的是什么?

顺便说一下,这些函数甚至没有包含在“msdn”库中。

编辑:看起来这些函数实际上并不是 16 位的!他们在堆栈上获取 32 位参数。

最佳答案

并不是说函数可以被16位应用程序调用。显然他们不能,因为他们生活在 32 位和 64 位模块中。重点是(曾经)让开发人员更容易编译旧程序而无需重新编写它们。

现在,在 2015 年,没有真正需要满足拥有 16 位程序并希望重新编译的开发人员的需求。这可能不会再发生任何显着水平。但如果时光倒流 20 年,那么这才是真正令人担忧的问题。因此 MS 包括这些兼容的拐杖。一旦包含了它们,MS 可能决定将它们留在那里以免破坏二进制兼容性。 MS 确实竭尽全力避免破坏旧程序。如果删除这些功能,任何依赖它们的程序都会中断。

关于windows - 为什么较新的 Windows 版本仍支持某些旧的 Win16 API?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27841903/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com