Chuyu-Team / YY-Thunks

Fix DecodePointer, EncodePointer,RegDeleteKeyEx etc. APIs not found in Windows XP RTM.
MIT License
496 stars 102 forks source link

修正用于编译用户自定义版本的ucrt时调试版中将崩溃的问题,如msvcr14x中 #56

Closed sonyps5201314 closed 1 year ago

mingkuang-Chuyu commented 1 year ago

最新结论: 已经通过weak重新通用性方案,等待用户验证。 此PR暂时不会合并,目前的方案属于特殊定制,相当于YY-Thunks拥有了二个版本。这对用户体验不好,太烧脑。想办法通过其他方案解决。

mingkuang-Chuyu commented 1 year ago

私下沟通后,原因是UCRT代码内部并未完成atexit table初始化,到时调用这个函数时崩溃。 这种情况比较特殊,仅会发生在自己编译CRT dll时,使用微软编译的现成的库不会遇到这种问题。

目前暂时不接受这个PR的方案,因为现在相当于形成了二个分支。用户遇到这个场景其实需要自己编译一份特殊定制的obj。从用户体验上,我难以接受,我希望只要一个obj兼容这种复杂的场景,而不是让用户思考怎么用。

最后,我声明一下,这并不是说我们不考虑兼容,而是我们需要重新详细的调查,是否有更优解,给用户更佳的体验。

PR暂时保持开启,我们需要一些时间。

mingkuang-Chuyu commented 1 year ago

https://github.com/Chuyu-Team/YY-Thunks/releases/tag/v1.0.8-Beta2 帮忙验证一下能否解决你的需求吧。

sonyps5201314 commented 1 year ago

验证通过,感谢。