当前位置:   article > 正文

RAD Studio 11.2详解其务实改进(Delphi & C++ Builder)-Alexandria

rad studio

RAD Studio 11.2详解其务实改进(Delphi & C++ Builder)-Alexandria

目录

RAD Studio 11.2详解其务实改进(Delphi & C++ Builder)-Alexandria

本文为博主针对官方的原创技术翻译,未经许可不得转载

一、官方关于本次release的版本改进说明

        愿景

        再次介绍“RAD Studio”的优势

        RAD Studio 11.0回顾

        RAD Studio 11.1.5 (C++) 的回顾

        RAD Studio 11.2:iOS模拟器、质量、功能性修饰符

二、官方的部分细节

        RAD Studio IDE

        11.0 IDE设计器  VS 11.1 IDE设计器

        而11.2的 IDE设计器

        11.2: IDE - tab state visualization选项卡状态可视化

         11.2: 完全集成并支持Markdown and HTML

         11.2: HelpInsight实时帮助洞察感知源代码

         11.2: Markdown and HTML:未记录信息

         11.2: Delphi: 查看编辑器中的“非活动编译”的代码

         11.2: C++ CodeInsight (incl from 11.1.5)

         11.2: CPU Disassembly View调试时使用CPU拆分视图

          11.2: 新的欢迎页面

          11.2:改进了GetIt

          11.x中的其他关于IDE的增强

          11.2 ToolsAPI 和三方支持

          11.2:有帮助的一些小部件

三、官方公布了C++和Delphi的编译器和工具方面的性能和改进

          iOS模拟器支持

          Delphi 编译器质量聚焦 

          C++ toolchain工具链: 质量聚焦 

          关于Android的改进

          LLDB 升级

四、官方公布了RAD 11.1类库的质量与提升

          11.2 “RTL运行时刻库”质量聚焦

          11.2版本---VCL桌面平台可视化组件库框架的质量聚焦

          11.2版本---FMX移动平台可视化组件库框架的质量聚焦

          11.2版本---Data有关数据库

          11.2版本---RAD Server后端服务开发 和 关于HTTP/REST通讯

          其他产品计划

          RAD Studio 11.2:iOS模拟器和质量重新小结


本文为博主针对官方的原创技术翻译,未经许可不得转载

一、官方关于本次release的版本改进说明

        代号为Alexandria的快速可视化应用开发IDE环境历经11.0、11.1的过渡,近期迎来了11.2的正式Release版本,这个版本按惯例,真正代表11这个版本。

        愿景

                ● Microsoft发布的Windows 11

                    ○ 全神贯注,选择“11”的关键原因

                    ○ 新开发平台Windows App SDK

                    又名:( aka 重整项目 )

                ● 转换到桌面上的ARM

                    ○ 由苹果主导,采用macOS

                    ○ 此外,ARM在移动平台上占据主导地位

                ● 4K上的开发者

                    ○ 开发人员通常使用高分辨率和多分屏

                    ○ 最终用户也在增长

        再次介绍“RAD Studio”的优势

                ● 开发人员生产力:“搬运式的复用”是一个特性。使用Delphi和C++Builder使得开发机构交付订单和市场需求的速度提高了5倍有余。

                ● 快速的“原生”应用程序:操作系统本机的原生编译器,赋能App应用应有的原生速度(没有任何臃肿)。

                ● 数据库访问:Delphi最原始的关键设计之一,就是将数据库访问完全集成到RAD Studio之中。

                ● 强大的C++库:数百个C++库,可以在C++Builder中使用,或者在RAD Studio中的Delphi下使用。

                ● 操作系统平台的API访问:可以直接访问所有跨平台的API。

                ● 可视化设计大师:只需集中精力在RAD Studio集成开发环境中去发挥你的“设计”潜能,完全可以忘记它背后的“UI原型”。

                ● 强化社区:技术合作伙伴众多,MVP、培训师、作者和开发人员

                ● 向后兼容:保护投资及代码的兼容性。

        RAD Studio 11.0回顾

                ● 重点关注IDE

                    ○ 启用IDE高DPI和高DPI的表单设计器

                    ○ VCL可视化的Style样式设计器;FMX改进了单窗口设计器和多窗口设计/代码的可视化切换。

                    ○ Visual Studio代码LSP语言服务协议的本机支持:智能代码补全

                    ○ LSP质量和新的C++代码格式化程序

                    ○ 安装程序最小化改进

                    ○ 新建了欢迎页面

                ● 库的改进

                    ○ Delphi RTL运行时刻库的质量改进:TZipFile文件压缩解压,64位数据结构,低功耗蓝牙

                    ○ VCL可视化设计的现代化

                    ○ Windows和桌面应用中让FMX更好支持的高DPI集成,包括WebView 2

                    ○ Android API 30支持和相关工作

                ● Delphi和C++的编译器及工具链

                    ○ C++质量级别:RTTI(“运行时的类型信息”组件化);异常处理

                    ○ Delphi macOS 64 ARM(M1)编译器和工具链

                    ○ Delphi语言本身的一些细微改进

                ● Delphi下的其他平台支持

                    ○ 支持WSL 2(Windows Subsystem for Linux---Windows下的Linux子系统)

                    ○ 包括Windows 11上的WSLg(Linux GUI---Win11中的Linux图形用户界面)

                ● 关注质量和改进

                    ○ 可用性、性能、稳定性

                    ○ 一些新的IDE功能小工具

                ● 平台和工具

                    ○ 官方支持Windows 11、macOS 12

                    ○ 官方支持Monterey、iOS 15和Android 12

                ● 更好的代码洞察力和LSP

                    ○ 同时支持两种背景语言:Delphi和C++

                ● 类库

                    ○ 性能和质量改进以及Delphi RTL、数据库库、VCL、FireMonkey部分功能增强

        RAD Studio 11.1.5 (C++) 的回顾

                ● C++仅发布了Code Insight和LSP

                    ○ 性能、解决质量问题等

                    ○ 关于保存项目的其他相关改进

        RAD Studio 11.2:iOS模拟器、质量、功能性修饰符

                ● 关注质量和改进

                    ○ IDE集成开发环境和Designer设计器的高DPI支持

                    ○ 可用性、“小部件”的质量

                ● IDE改进

                    ○ CPU视图语法高亮

                    ○ 支持Markdown语法及嵌入

                    ○ 编辑器选项卡改进

                    ○ 字体和样式改进

                ● Code Insight代码洞察感知 / Delphi LSP语言服务协议的本机支持

                    ○ 重新编写的Help Insight帮助洞察感知(并再次重新使用XSLT)

                    ○ 标记非活动代码和颜色常量

                    ○ 改进了11.1.5中的C++代码洞察力

                ● 平台和工具

                    ○ Delphi下支持最新的iOS模拟器

                    ○ 支持用于Linux的LLDB

                    ○ Android目标级别支持到:API 32

                    ○ 远程调试:支持Win64位的C++了

                ● 类库

                    ○ VCL可视化组件库:改进了WebView2

                    ○ 一般性的VCL和FMX质量改进

                    ○ 强化了ZLib、HTTP/REST

                    ○ RAD Server:快速开发后端服务器

                    ○ 对内建的FireDAC数据访问组件的重新查找、更新的驱动程序和FD监视器/FD资源管理器的改进

二、官方的部分细节

        RAD Studio IDE

        11.0 IDE设计器  VS 11.1 IDE设计器

                ● 高DPI的IDE

                ● 所有窗口和编辑器中的字体放大9x后,超级清晰

                ● 支持高DPI的图形化的表单设计器

                ● VCL Designer中:多种活动样式

        而11.2的 IDE设计器

                ● 高DPI质量改进

                    ○ 多区域、多窗口:整体质量

                    ○ VCL Designer有许多高DPI修复

                ● VCL Designer默认使用样式

                    ○ 在11.0中,在设计器,一次包含多个样式,就像应用程序一样

                    ○ 在11.2中,特殊设计样式可在设计时使用,默认情况下处于启用状态

                设计时,所见:

                 运行时,即所得:

  

        11.2: IDE - tab state visualization选项卡状态可视化

                 ● 某些选项卡与其他选项卡不同:

                    ○ 有些具有不同的非代码功能,例如欢迎页面、类型库编辑器、源代码管理选项卡

                    ○ 调试时打开了一些代码

                    ○ 某些代码是只读的

                ● 过去,我们在选项卡中用点表示修改过的代码

                    ○ 在11.2中,我们还为上述所有内容添加了符号。有助于视觉导航

                ● 此外,关闭选项卡的图形符号“x”现在是可配置的:完全关闭,在活动选项卡上,或在所有选项卡上

                ● 要设置选项卡的颜色,使用INTACustomEditorView280.GetTabColor(获取标签颜色)

                    ○ 返回要使用的TColor

                    ○ clNone表示IDE的默认颜色

                    ○ “淡出”的非活动选项卡版本为由IDE自动生成

         11.2: 完全集成并支持Markdown and HTML

                ● Markdown是一种常见的可阅读的“标记”格式

                ● 大多数Github自述都是Markdown

                ● IDE充分支持Markdown文档,格式化:标题、链接、图像、代码等

                ● 返回富HTML文档也支持

                ● 在代码编辑器中可编辑HTML和MD

                ● 项目自述可以是Markdown

                ● IDE中不再有Internet Explorer!纯VCL可视化的代码实现

         11.2: HelpInsight实时帮助洞察感知源代码

                ● 回归当年的XSLT技术

                    ○ 实际上,Help Insight还是11.0之前的版本

                    ○ 完整的XmlDoc信息:代码中完全解析函数或过程的全路径命名空间、参数及其注释

                    ○ 可以通过编辑XSLT文件(如Documentation Insight)和CSS进行自定义

                ● 并可导航到类库或API的源码链接

         11.2: Markdown and HTML / HelpInsight三者整合

                ● 使用Delphi HTMLComponents控件,将标记自动转换为HTML

                    ○ 这意味着不再有Internet Explorer

                ● 要自定义Markdown:

                    ○ 编辑对象Repos\Markdown.css

                ● 要自定义HelpInsight:

                    ○ 编辑ObjRepos\HelpInsight.css(外观)

                    ○ 编辑ObjRepos\HelpInsight.xslt(内容)

                ■ 使用HTML格式(而不想使用Markdown格式)

                ■ 你可以切换的任意内容,从XmlDoc到HTML

         11.2: Markdown and HTML:未记录信息

                    ○ CSS文件可以引用IDE调色板:

                        颜色:ide_red;

                        使用ide_blue、ide_red、ide_yellow、ide_green、ide_violet ,

                        ide_gray和ide_range:不同的值取决于操作系统的当前主题

                ● Markdown标记可以引用IDE图像列表图像,例如:

                        产品图标、新工具栏图像等,通过_ide/path

                        ! [ ](_代码/个性/RadStudio@64)

                        ! [ ](_代码/个性/RadStudio@2.5x)

                    ○ 名称不能保证稳定,但“不太可能”更改。

                        使用RTTI的Spelunk图像名称

                    ○ 或外壳图标:

                        ! [ ](对话框/警告)

                        (Delphi HTMLComponents的组件功能)

         11.2: Delphi: 查看编辑器中的“非活动编译”的代码

                ● 一个常见的客户请求(customer request)

                ● 并非所有代码都已编译:

                    用预编译指令 { $IFDEF…} 来识别代码是否需要编译。

                ● 未编译的代码 = 非活动的代码

                    现在,非活动代码将以褪色的半透明颜色绘制

                    比如上图,预编译“ARC”自动引用计数,和不对代码进行ARC预编译,均“可控”。

                    使得内存更加安全和高效。

                ● 其他标记,如匹配大括号或选择(braces or selections),仍以非活动代码的方式来绘制

                    -而且以颜色不同区别

                ● 这可以关闭或在注册表中编辑透明度

         11.2: C++ CodeInsight (incl from 11.1.5)

                ● 从11.1.5版本开始,仅用C++进行代码感知,所有这些都均涵盖到到11.2中

                ● 改进:保存项目和文件夹

                ● 性能(20秒以内的测试结果表明:  2秒以内即可完成显示编辑、调试时的下拉列表)

                ● 改进的导航(ctrl + click):代码感知时,可以显示多个源码链接的目标位置

                ● 第三个索引选项:索引所有文件项目

                ● 许多质量修复,包括经典版

                    ○ 我们强烈建议您阅读:“为项目配置C++的Code Insight设置”

                ■ Code Insight参考>'C++”索引帮助中的“LSP Behaviour”

         11.2: CPU Disassembly View调试时使用CPU拆分视图

                ● 单步执行汇编代码时,语法高亮有助于阅读

                ● 在此过程中匹配编辑器或IDE的样式颜色

          11.2: 新的欢迎页面

                ● 11.1:新的本地欢迎页面,基于VCL且可客制化。

                    布局和内容完全可定制:显示内容和你想要的地方(提供了“插件”式的源代码

                ● 11.2新增:GetIt窗格新增,显示最近添加的程序包

                    ○ 查看新功能–发现软件包

          11.2:改进了GetIt

                ● 语言过滤器:仅搜索Delphi或C++

                ● 本地程序包(带有更新订阅)

                    ○ 下载软件包,在计算机上离线安装

                    ○ 尝试创建包

                    ○ 简化团队中多个开发人员对库的安装

                ● 将等待外部安装程序

          11.x中的其他关于IDE的增强

                ● “新建项目”对话框:可用于每个项目的差异化平台

                    ○ 还使用了:TControlList 并 提供其他视图

                ● 11.2:文件>新建,现在显示了标准的“数据模块”( Data Module )

                ● 消息视图:错误、警告,提示按颜色区分(颜色可定制)

                ● “编译”对话框显示了:平台和构建配置

          11.2 ToolsAPI 和三方支持

                ● bds.exe主程序的命令行标识:查询当前SKU,包括试用版或CE版、已安装平台和已安装个性

                    ○ 对构建脚本有用:验证安装

                    ○ 第三方组件安装程序的密钥

                ● 上述工具API,并且提供了编辑器选项卡颜色

                ● 七个ToolsAPI文件现在有XmlDoc,意思是“ 对编程帮助的感知 ”

                    ○ 我们重视工具API,并鼓励您使用它,编写插件并挂载

          11.2:有帮助的一些小部件

                ● RAD Studio 11.2到处都有小的调整,提高质量

                ● 上面已经提到:

                    ○ 编辑器选项卡、颜色和调试时也可打开

                    ○ 文件 > 新建 > 数据模块

                    ○ VCL设计师-高DPI改进:(控制大小、复选框和单选框等)

                    ○ 只读单元,以“挂锁”的图标来单独标识

                ● 尚未提及的有:

                    ○ RAD服务器,可查看IP地址等等;

                    ○ 项目双击就能开干;

                    ○ 重新打开列表时,始终保持最新状态;

                    ○ 编译和文件缓存对话框:格式化计数,适配语言环境,更易于阅读;

                    ○ IDE性能:大大改进了当绘图或移动窗口的性能;UI布局、控件呈现、控件大小等的数量改进;IDE样式更好地显示默认按钮;IDE中的字体大小支持:在“选项”对话框中即可进行设置(而非注册表手动方式)并支持多窗口;

                    ○ 自定义样式:可以在选项中设置IDE中的支持(任何VCL样式)

                    ○ Delphi代码完成显示:颜色常量及其对应的颜色…...

三、官方公布了C++和Delphi的编译器和工具方面的性能和改进

          iOS模拟器支持

                ● 11.2中Delphi对目标平台有了新的描述及常量标识

                ● 模拟器对于快速迭代非常有用:

                    ○ 部署到模拟器并调试比真机快得多

                ● 苹果向ARM全面转型

                    设备,包括在Mac上运行iOS应用程序

                ● 在11.2中,Apple设备M系列CPU上的模拟器可直接运行Delphi的iOS应用程序

          Delphi 编译器质量聚焦 

                ● 11.x功能和所有热修复补丁

                    ○ 包括11.1补丁1中的AtomicCmpExchange(原子组件交换)[128]修复程序;'质量集合LLVM编译器,以及对Win64汇编指令的改进的安全标志

                ● ASLR支持通过“高负载地址空间”布局扩展Win64中的随机数(HE-ASLR)

                    ○ 良好的附加安全功能。某些工业领域通常需要DEP/NX、ASLR(11.1中也具备该功能)和HEASLR

                ● 如果将句柄转换为int,则可能会出现问题:不要假定句柄为32位(尽管Windows标准很常见,但并非所有的都是)。

                ● 所有的软件包都支持这些功能

 

          C++ toolchain工具链: 质量聚焦 

                ● 所有这些关于C++工作:都已涵盖到了11.1.5版本

                    ○ 如前所述,代码完成和导航

                ● STL io streams输入输出的STL性能:比11.1版提升了25%,其他质量改善:

                    改进:来自Delphi的集成记录助手( integrated record helpers ),延迟加载

                    改进:链接器修复、数据对齐IDE <===> bcc32c等

                ● 链接器支持ASLR、DEP/NX和TSAWARE标志(但不超过4GB启动地址)C的LLDB++

                ● 支持Win64的远程调试

          关于Android的改进

                ● 11.2支持Android API到级别32

                    ○ 从2022年8月开始,Play Store要求31级新提交,2022.11月必须更新

                    ○ 更新targetSdkVersion、AndroidManifest、xml模板等

                ● JDK目前版本为v11

                    ○ 如果Eclipse Adoptium JDK可用,就可用

                ● 本地通知的改进

                ● 新增许多“用户权限”配置

                ● 还可创建PKCS12密钥库

          LLDB 升级

        LLDB是一个有着REPL 复制的特性和C++, Python插件的开源高性能调试器,它是Mac OS X上Xcode的默认调试器,支持在桌面和iOS真机和模拟器上进行调试。

        LLDB绑定在Xcode 内部,存在于主窗口底部的控制台中,可以在需要 时暂停程序,查看变量的值,执行特定的指令,并按指定的步骤来操作程序的进展。

                ■ 目标:向LLDB添加Delphi语言支持

                ■ 因此可以在Delphi中直接计算表达式

                ■ 代码评估、包容性编辑、监视等,并“跨平台”迁移到LLDB

                故而实现了:

                ● 将多个调试器减少为一个;

                ● 在所有平台上提供一致的功能;

                ● 使用现代化的调试器

                    在过去的发布网络研讨会上,曾经提到过(一些)未来版本,请关注LLDB的进展

                ●11.2扩展了Delphi支持

                    ○ 对集合set表达式的基本处理

                    ○ 动态数组,“nil”,指针强制转换,空字符串和基于十六进制字符的字符串

                ●11.2: 将Linux 64 迁升到 LLDB

                    需要至少Python 3,若有疑问,请参阅文档。

                ● 巨大变革:

LLDB支持的目标平台(64位平台):

● C++ Win64 ● Delphi macOS ARM 64 ● Delphi macOS Intel 64 ● Delphi Android 64 ● Delphi iOS 64 ● C++ iOS 64 ● Delphi Linux 64

LLDB不再支持(32位平台):

● Delphi and C++ Android 32 ● Delphi Windows 64 ● Delphi and C++ Windows 32

四、官方公布了RAD 11.1类库的质量与提升

          11.2 “RTL运行时刻库”质量聚焦

                ● ZLib更新至1.1.12,以解决最近修补的漏洞,以及其他zip质量(存储文件、Linux上的符号链接、处理截断数据,等等)和性能

                ● 新增:TProxySburangeStream类:任何其他流的子范围(类似于以前的私有TStoredStream)

                ● PCRE支持JIT及时化,性能卓越

                    ○ 并可以访问TPerlRegEx.Study正则学习

                ● RTTI运行时类型信息的质量

                ● 系统SysUtils、StrToFloatDef不再更改数字类型的异常掩码

                ● 其它几项性能改进

          11.2版本---VCL桌面平台可视化组件库框架的质量聚焦

                ● 框架内的TNumberBox、TDateTimePicker、CardPanel-s解决了许多问题,TButton/bsSplitButton -> PopupComponent更新,解决了:CardPanel-s、TListView中覆盖OwnerData、禁用的Rich Edit特性、气球提示问题等

                ● TWebBrowser、EdgeUserDataFolder,用于在自定义位置存储cookie、缓存等

                ● TWebBrowser用于加载自定义WebView2的EdgeBrowserExecutableFolder

          11.2版本---FMX移动平台可视化组件库框架的质量聚焦

                ● 支持带深色图标的iOS状态栏。

                ● TPathData处理和渲染,在质量和性能方面,包括二次Bézier曲线命令

和其他转换。

                ● 提高了GPU画布上TPath的渲染速度

                ● 许多其他质量改进,包括以下方面:

                    ○ TBufferedLayout对包含的控件样式的更新进行有效的反应

                    ○ Windows隐私和TVideoCaptureDevice交互良好,及其他Windows摄像头质量改善

                    ○ TWebBrowser和Edge质量

                    ○ StyleBook模板样式本:Windows 64下质量改进

                    ○ 具有DynamicAppearance动态呈现的ListView列表视图质量改善

                ● TListBox列表盒支持按住Shift键并单击,进行多选择范围

          11.2版本---Data有关数据库

                ● 用于dbGo(即古老版本的ado)迁移的FireDAC重新查找脚本,以及兼容性单元,

FireDAC.ADO.Migrate.pas迁移源码文件

                ● reFind还允许您将旧代码保留为注释(/C开关)

                ● 更新的FireDAC驱动程序

                    ○ 用于DSQL服务器的ODBC

                    ○ macOS M1芯片上的MSSQL

                    ○ 支持MongoDB新事务功能

                ● FD监视器

                ● FireDAC SQL编辑器

                ● Addtl DB库更改

                ● RAD服务器

                ● FDMonitor大大改进了!

                    ○ 语法突出显示改进

                    ○ 用于跟踪SQL命令的SQL输出视图

                    ○ FDExplorer和FDMonitor具有搜索命令

                    ○ ODBC和其他优化

                ● FireDAC SQL编辑器具有语法突出显示、行号和通用快捷键

                ● TCustomADODataSet、AutoIncFieldsMode:通过以下方式优化打开数据集

避免额外的数据流量以检测自动递增字段

          11.2版本---RAD Server后端服务开发 和 关于HTTP/REST通讯

                ● RAD Server Lite社区版:2用户的限制已删除

                ● 增强的日志记录:现在记录IP地址和日期时间

                ● ems服务器。ini文件中ini可以指定指向FDConnectionDefs及FD驱动程序。

                ● EMSFireDACClient组件具有上下文,创建基于的持久字段的关于结果集的菜单项

                ● TEMSFireDAC客户端。PostUpdates可以使用自定义的会话令牌

                ● 改进了TEMSFileTResource列表功能

                HTTP和REST :

                ● 改进的Windows代理检测

                ● 改进了Android平台THTTPNetClient SSL证书检查

                ● TRestRequest MIME类型和改进了多部分/表单数据( multipart/form data )

          其他产品计划

                ● Appercept针对Delphi的AWS SDK(亚马逊web服务的SDK)

○ 长期分销协议,包括在企业和建筑师中

○ 预计新版本将保持不变

                ● 用于Python的Delphi UI可视化组件库( VCL + FMX )

                    ○ Python开发人员的免费UI库

                    ○ 升级到Delphi许可证以获得更多能力和功能

                    ○ 此外,您还可以在Delphi应用程序中使用Python

          RAD Studio 11.2:iOS模拟器和质量重新小结

                ● 关注质量和改进

                    ○ IDE和Designer高DPI

                    ○ 可用性/“小部件”

                ● IDE改进

                    ○ CPU视图语法高亮

                    ○ Markdown支持

                    ○ 编辑器选项卡改进

                    ○ 字体和样式

                ● 代码洞察感知 / DelphiLSP

                    ○ 重新编写的Help Insight(并再次使用XSLT)

                    ○ 标记非活动代码和颜色常量

                    ○ 11.1.5中的C++代码洞察力

                ● 平台和工具

                    ○ Delphi的iOS模拟器

                    ○ 用于Linux的LLDB

                    ○ Android目标API 32

                    ○ 远程调试Win64 C++

                ● 类库

                    ○ VCL WebView2改进

                    ○ 一般VCL和FMX质量

                    ○ ZLib、HTTP/REST

                    ○ RAD服务器

                    ○ FireDAC重新查找、更新的驱动程序和FD监视器/FD资源管理器

喜欢的,就收藏并点个赞,鼓励我继续技术的原创写作及经验分享:

RAD Studio 11.X Alexandria release有何新的改变及改变实务_pulledup的博客-CSDN博客

知道RAD Studio Sydney(Delphi 10.4.2)这些,少走弯路_pulledup的博客-CSDN博客

Delphi RAD Studio 10.4.2 Sydney的新增与改进介绍原版全文_pulledup的博客-CSDN博客

从delphi 10.3到delphi 10.4的改变实务_pulledup的博客-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/盐析白兔/article/detail/122505
推荐阅读
相关标签
  

闽ICP备14008679号