Chuyu-Team / YY-Thunks

Fix DecodePointer, EncodePointer,RegDeleteKeyEx etc. APIs not found in Windows XP RTM.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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

sinfee opened this issue · comments

置顶

问题临时解决方案

已知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: 无法解析的外部符号 __imp__JetBeginDatabaseIncrementalReseed@16
2>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 __imp__JetBeginDatabaseIncrementalReseedA@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: 无法解析的外部符号 __imp__JetOpenFileSectionInstance@36
2>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 __imp__JetOpenFileSectionInstanceA@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: 无法解析的外部符号 __imp__JetBeginDatabaseIncrementalReseed@16
2>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 __imp__JetBeginDatabaseIncrementalReseedA@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: 无法解析的外部符号 __imp__JetInit4@12
2>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 __imp__JetInit4A@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: 无法解析的外部符号 __imp__JetOpenFileSectionInstance@36
2>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 __imp__JetOpenFileSectionInstanceA@36
fatal error LNK1120: 12 个无法解析的外部命令

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

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

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

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

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

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

我用了修复版本,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: 无法解析的外部符号 __imp__JetOpenFileSectionInstance@36
1>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 __imp__JetOpenFileSectionInstanceA@36
fatal error LNK1120: 4 个无法解析的外部命令

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: 无法解析的外部符号 __imp__JetOpenFileSectionInstance@36
1>YY_Thunks_for_WinXP.obj : error LNK2001: 无法解析的外部符号 __imp__JetOpenFileSectionInstanceA@36
fatal error LNK1120: 4 个无法解析的外部命令

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

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

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

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

@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时连接正常。

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