加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

德尔福 – TArray VS TBytes VS PByteArray

发布时间:2020-12-15 04:12:48 所属栏目:大数据 来源:网络整理
导读:这3种类型非常相似…… TArray是TBytes的通用版本. 两者都可以转换为PByteArray并用作调用Windows API的缓冲区. (与字符串相同的限制为Pchar). 我想知道的是:这种行为是“按设计”还是“按实施”.或者更具体地说,它可能会在未来版本中破裂吗? //编辑 如下
这3种类型非常相似……

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

我想知道的是:这种行为是“按设计”还是“按实施”.或者更具体地说,它可能会在未来版本中破裂吗?

//编辑
如下所述……
我真正想知道的是:将TBytes(或TArray)类型化为PByteArray是安全的,因为就前向兼容性而言,将字符串转换为PChar. (或者也许AnsiString到PAnsiChar是一个更好的例子^ _ ^)

解决方法

简单地说,一个字节数组是一个字节数组,只要字节和数组的定义不变,这也不会改变.你可以安全地使用它,只要你确保尊重数组边界,因为从Delphi的数组类型中抛出它会使你的边界检查无效.

编辑:我想我现在看到你要求的更好一点.

不,您不应该将动态数组引用转换为C样式的数组指针.您可以使用字符串来逃避它,因为编译器会帮助您解决一些问题.

但是,您可以执行的操作是将指向动态数组的元素0的指针转换为C样式的数组指针.这将有效,而且不会改变.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读