TArray<字节> VS TBytes VS PByteArray

2024-02-20

这3种类型非常相似...

TArray 是 TBytes 的通用版本。 两者都可以转换为 PByteArray 并用作调用 Windows API 的缓冲区。 (具有与字符串到 Pchar 相同的限制)。

我想知道的是:这种行为是“设计使然”还是“实现使然”。或者更具体地说,它会在未来的版本中出现故障吗?

//编辑 正如下面所说... 我真正想知道的是:就前向兼容性而言,将 TBytes(或 TArray)类型转换为 PByteArray 与将 String 类型转换为 PChar 一样安全吗? (或者也许 AnsiString 到 PAnsiChar 是一个更好的例子 ^_^)


简单来说,字节数组就是字节数组,只要字节和数组的定义不改变,这个也不会改变。只要您确保遵守数组边界,您就可以安全地以这种方式使用它,因为将其从 Delphi 的数组类型中转换出来会使您的边界检查无效。

编辑:我想我现在更好地理解你的要求了。

不,您不应将动态数组引用强制转换为 C 样式数组指针。您可以使用字符串来摆脱它,因为编译器可以帮助您一些。

不过,您可以做的是将指向动态数组的元素 0 的指针转换为 C 样式数组指针。那will工作,并且不会改变。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

TArray<字节> VS TBytes VS PByteArray 的相关文章

随机推荐