nt5src如何去除“For testing purposes only”

消除NT5测试提示
本文介绍了如何解决编译nt5src后出现的“Fortestingpurposesonly.Build3790”提示问题。通过分析源代码定位到显示该提示的具体位置,并提供了解决方案。

内容

编译nt5src并安装完成后,在桌面的右下角有个提示“For testing purposes only. Build 3790”,变更了桌面背景也无法消除。

chan4论坛里面说修改“shell\shell32\defview.cpp”的“void CDefView::_SetFolderColors()”,实际测试后是没有用的。

我们先找到提示文本在“windows\core\ntuser\kernel\strid.mc”文件内;该文件内容最终编译到“windows\core\ntuser\kernel\daytona\obj\i386\userk.lib”链接文件里;该链接文件只被“windows\core\kmode\daytona\obj\i386\win32k.sys”内核文件所使用。通过代码阅读,发现显示该提示的处理代码在“windows\core\ntuser\kernel\dtbitmap.c”文件里,其中函数“GetVersionInfo”是用于拼接待显示提示信息,而函数“DesktopBuildPaint”则是出来怎么画这些信息的代码。

希望对感兴趣的码农有帮助 ^_^


PS

windows2003的源代码泄露了很久了,我今年才关注到这事情(惭愧)。但是很奇怪,这件事情在2020年底之后,就没有任何人讨论了,包括国外和国内。难道真的没有可讨论意义了吗?有感兴趣的伙伴们请留言或发邮件“2098310613@qq.com”联系我!

这个错误提示表明你正在尝试使用 **Java 16 预览版(Preview)功能**(如 `instanceof` 模式匹配或密封类 `sealed types`),但 **未接受 Beta 版 Java 的法律条款**。 --- ## **解决方案** ### **1. 接受 Beta 版 Java 的法律条款** - **在 IntelliJ IDEA 中**: 1. 打开设置: ``` File → Settings → Build, Execution, Deployment → Compiler → Java Compiler ``` 2. 找到 **Project bytecode version** 或 **Per-module bytecode version**。 3. 如果使用 **Java 16 (Preview)**,IDEA 会弹出提示: ``` You must accept the terms of legal notice... ``` 4. **点击 "Accept"** 接受条款,然后重新编译。 --- ### **2. 改用正式版 Java(推荐)** - **升级到 Java 17+**(`instanceof` 模式匹配已是正式功能): - 修改 `Language Level` 为 **17** 或 **21**(非 Preview 版本): ``` File → Project Structure → Project Settings → Project → Language Level ``` - 确保 JDK 17/21 已安装并配置: ``` File → Project Structure → SDKs → 添加 JDK 17/21 ``` --- ### **3. 临时降级写法(兼容 Java 8+)** 如果无法升级 JDK,改用传统语法: ```java if (obj instanceof Optional) { return ((Optional<?>) obj).isEmpty(); } if (obj instanceof CharSequence) { return ((CharSequence) obj).isEmpty(); } ``` --- ## **为什么会出现这个问题?** - **Java 16 的 `instanceof` 模式匹配** 最初是 **预览功能**(Preview),需要明确接受法律条款才能使用。 - **Java 17 开始**,该功能成为 **正式特性**,不再需要接受条款。 --- ## **
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值