Ken*_*ssa 5 delphi delphi-2010
这3种类型非常相似......
TArray是TBytes的通用版本.两者都可以转换为PByteArray并用作调用Windows API的缓冲区.(与字符串相同的限制为Pchar).
我想知道的是:这种行为是"按设计"还是"按实施".或者更具体地说,它可能会在未来版本中破裂吗?
//编辑如下所述......我真正想知道的是:将TBytes(或TArray)强制转换为PByteArray是安全的,因为就前向兼容性而言,将字符串强制转换为PChar.(或者也许AnsiString到PAnsiChar是一个更好的例子^ _ ^)
简单来说,字节数组就是字节数组,只要字节和数组的定义不改变,这个也不会改变。只要您确保遵守数组边界,您就可以安全地以这种方式使用它,因为将其从 Delphi 的数组类型中转换出来会使您的边界检查无效。
编辑:我想我现在更好地理解你的要求了。
不,您不应将动态数组引用强制转换为 C 样式数组指针。您可以使用字符串来摆脱它,因为编译器可以帮助您一些。
不过,您可以做的是将指向动态数组的元素 0 的指针转换为 C 样式数组指针。这会起作用,并且不会改变。
| 归档时间: |
|
| 查看次数: |
7572 次 |
| 最近记录: |