Chuyu-Team / YY-Thunks

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

8.1 SDK或者更早版本使用YY-Thunks obj模式发生链接失败 #97

Closed sinfee closed 1 week ago

sinfee commented 3 weeks ago

置顶

问题临时解决方案

已知SDK版本低于10时,可能发生改问题,临时可以将SDK升级到10.0.10240或者更高版本。目前已经修复,耐心等待新版本。

问题引入原因

为了给LLD-Link添加lib模式时意外引入了改问题,强制依赖了SDK10上特有的lib。

问题现象

when build with v140 or v141 v142 v143 sdk 8.1 , win32 platform : 2>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 _JetBeginDatabaseIncrementalReseed@16 2>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 _JetBeginDatabaseIncrementalReseedA@16 2>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 impJetBeginDatabaseIncrementalReseed@16 2>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 impJetBeginDatabaseIncrementalReseedA@16 2>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 _JetOpenFileSectionInstance@36 2>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 _JetOpenFileSectionInstanceA@36 2>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 impJetOpenFileSectionInstance@36 2>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 impJetOpenFileSectionInstanceA@36 fatal error LNK1120: 8 个无法解析的外部命令

when build with v140_xp or v141_xp sdk 7.0 , win32 platform : fatal error LNK1104: 无法打开文件“BluetoothAPIs.lib” fatal error LNK1104: 无法打开文件“Pathcch.lib” fatal error LNK1104: 无法打开文件“Shcore.lib” when I ignore this library , will some lnk2001 error :

2>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 _JetBeginDatabaseIncrementalReseed@16 2>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 _JetBeginDatabaseIncrementalReseedA@16 2>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 impJetBeginDatabaseIncrementalReseed@16 2>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 impJetBeginDatabaseIncrementalReseedA@16 2>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 _JetInit4@12 2>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 _JetInit4A@12 2>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 impJetInit4@12 2>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 impJetInit4A@12 2>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 _JetOpenFileSectionInstance@36 2>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号

置顶

问题临时解决方案

已知SDK版本低于10时,可能发生改问题,临时可以将SDK升级到10.0.10240或者更高版本。目前已经修复,耐心等待新版本。

问题引入原因

为了给LLD-Link添加lib模式时意外引入了改问题,强制依赖了SDK10上特有的lib。

问题现象

_JetOpenFileSectionInstanceA@36 2>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 impJetOpenFileSectionInstance@36 2>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 impJetOpenFileSectionInstanceA@36 fatal error LNK1120: 12 个无法解析的外部命令

mingkuang-Chuyu commented 3 weeks ago

fatal error LNK1104: 无法打开文件“BluetoothAPIs.lib” fatal error LNK1104: 无法打开文件“Pathcch.lib” fatal error LNK1104: 无法打开文件“Shcore.lib

你先把暂时把SDK升级到最新的SDK吧。这里引入了SDK7里不存在的lib。

升级sdk版本不影响兼容老系统

mingkuang-Chuyu commented 3 weeks ago

@sinfee CI已经构建了修复版本。可以帮忙试试。

https://github.com/Chuyu-Team/YY-Thunks/actions/runs/9503315572

sinfee commented 3 weeks ago

是的,我更改到sdk 10.0后可以编译win32成功

sinfee commented 3 weeks ago

我用了修复版本,SDK 7.0 时还会提示缺省LIB库,换到8.1时会提示: 1>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 _JetOpenFileSectionInstance@36 1>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 _JetOpenFileSectionInstanceA@36 1>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 impJetOpenFileSectionInstance@36 1>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 impJetOpenFileSectionInstanceA@36 fatal error LNK1120: 4 个无法解析的外部命令

sinfee commented 3 weeks ago

SDK 7.0的情况 ,会提示缺省Shcore.lib库,我把它忽略后,会提示和前面一样的4个缺少的符号: 1>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 _JetOpenFileSectionInstance@36 1>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 _JetOpenFileSectionInstanceA@36 1>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 impJetOpenFileSectionInstance@36 1>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 impJetOpenFileSectionInstanceA@36 fatal error LNK1120: 4 个无法解析的外部命令

mingkuang-Chuyu commented 3 weeks ago

@sinfee 谢谢,那就先这样吧。后续我写个6.0 SDK的构建单元测试,监控这类问题吧。

本人平常开发也不会使用老版本的SDK,这方面是非常可能引入库缺失问题的。

mingkuang-Chuyu commented 2 weeks ago

@sinfee 新的产物帮忙试试吧,现在应该是真的解决了。CI里使用SDK 6.0是没问题。

https://github.com/Chuyu-Team/YY-Thunks/actions/runs/9529280157/artifacts/1604945323

huiminghao commented 2 weeks ago

@sinfee 新的产物帮忙试试吧,现在应该是真的解决了。CI里使用SDK 6.0是没问题。

https://github.com/Chuyu-Team/YY-Thunks/actions/runs/9529280157/artifacts/1604945323

YY-Thunks-1.1.1-Objs,目标是win7时没有遇到问题。目标是xp时,会有相同的‘_JetBeginDatabaseIncrementalReseed’的符号问题。 更新后的版本目标是xp时连接正常。

mingkuang-Chuyu commented 2 weeks ago

@huiminghao 谢谢,等待新版本发布。暂时先切换到 SDK10.0吧。

mingkuang-Chuyu commented 1 week ago

https://github.com/Chuyu-Team/YY-Thunks/releases/tag/v1.1.2-Beta1 新版本已经发布