看了一下那个列表。打 * 号表示那些函数没有好的模拟实现。
改变语义确实是个问题,可能真的是实现困难。不过只要最关键的 kernel32.dll 函数实现还可以,应该就差不多可用。
【 在 z16166 的大作中提到: 】
: 没啥用,因为很多模拟不了(帮MS在老的windows上重新实现一遍新Windows引入的API),
: 所以只是load时不弹错误窗,运行时一样失败,而且更加隐蔽,不容易发现问题。
: 类似ELF/macOS的weak symbol,但ELF这个在运行时找不到的话会直接崩掉,而不是返回一个错误值,因为有些人用API都不检查返回值的,非常不利于查问题。所以它这个对于不能模拟的API,最好不要返回E_NOTIMPL、ERROR_NOT_SUPPORTED,直接崩掉最好,不扩散错误,直接fail fast。
: ...................
--
FROM 183.253.146.*