AnA*_*ons 1 windows legacy 64-bit winapi 16-bit
我最近在MoleBox打包的可执行文件上修复了一些IAT,并发现它与kernel32函数链接:'_ _ lpen','_ lwrite'和'_lread'.该站点声明提供这些API是为了与16位版本的Windows兼容.我不希望'Win16'应用程序无法在长模式下执行(是的 - 我正在运行Win8.1 x64) - 所以那些仍然包含在'kernel32.dll'中的目的是什么?
顺便说一句,这些功能甚至不包含在'msdn'库中.
编辑:似乎这些功能实际上不是16位!他们在堆栈上采用32位参数.
并不是16位应用程序可以调用这些函数.显然他们不能,因为他们生活在32位和64位模块中.关键是让开发人员更容易编译旧程序而不必重新编写它们.
现在,在2015年,并没有真正需要满足他们希望重新编译的16位程序的开发人员.这可能不再发生在任何重要的水平上.但如果你把时钟倒退20年,那么这真的是一个问题.因此MS包括这些compat拐杖.一旦它们被包括在内,那么MS可能决定将它们留在那里,以免破坏二进制兼容性.MS确实竭尽全力避免破坏旧程序.如果要删除这些函数,任何依赖它们的程序都会破坏.
| 归档时间: |
|
| 查看次数: |
451 次 |
| 最近记录: |