非官方的字节座补丁以启用Delphi下一代的Ansistring Support
System.Delphi 10.2-10.3
Delphi 10.1+柏林重新引入了NextGen编译器(Android,iOS,Linux)的UTF8STRING和RAWBYTESTRING。但是短屈服和束缚仍然缺失。编译器对它们有全力支持,但是您无法使用它们,因为它们在系统中用领先的下划线声明了它们。PAS单元是什么使它们无法访问的,因为“ _”已编译为“@”,您无法用于标识符。
通过修补DCU文件,可以使这些隐藏类型可访问。
单位系统。重新引入10.2-10.3
将System.ByTestrings.DCU的路径添加到编译器的搜索路径,然后将单元添加到您的使用条款中。
没有System.ByTestrings.pas文件,因为DCU已用十六进制编辑器修补以访问隐藏类型。
总体而言,System.Bytestrings不再需要10.4+上的bytestrings,因此您可以这样使用它:
使用{$如果rtlversion <34.0} system.bytestrings,{$ endif} ...
参见Delphi 10.4:https://www.embarcadero.com/products/rad-studio/whats-new-inew-in-10-4-sydney
统一的内存管理
现在,使用对象内存管理的经典实现,在所有受支持的平台(移动,桌面和服务器)中,Delphi内存管理已统一。与自动参考计数(ARC)相比,这为组件,库和最终用户应用程序提供了更好的兼容性和更简单的编码。 ARC模型仍然用于所有平台的字符串管理和接口类型引用。对于C ++,此更改意味着C ++中Delphi风格类的创建和删除遵循正常内存管理,就像任何堆分配的C ++类一样,大大降低了复杂性。