3

我已声明outputBuffer为 aByte并相应地使用它:

TFile.WriteAllBytes(outputPath, outputBuffer);

当我编译我的程序时,Delphi 输出:

[DCC 错误] StormLib.pas(56):E2010 不兼容的类型:'System.TArray[System.Byte] 和 'Byte'

我是否为变量使用了错误/过时的数据类型?我必须做什么才能让我的程序编译?

提前谢谢你!

4

2 回答 2

8

改为使用TBytes。该WriteAllBytes方法采用TBytes定义为的方法TArray<Byte>,因此是一个字节数组,而不仅仅是单个Byte.

var
  OutputPath: string;
  OutputBuffer: TBytes;
begin
  // use SetLength to set the length of your OutputBuffer
  // byte array, fill it somehow and then call WriteAllBytes
  TFile.WriteAllBytes(OutputPath, OutputBuffer);
end;
于 2012-10-08T11:31:53.243 回答
1

您的错误消息清楚地表明不兼容的类型不是 Byte 和 Byte,而是 TArray<Byte> 和 Byte。坦率地说 - 这是预期的。字节数组远不止单字节。

制作 TArray<Byte> 类型的变量并使用它来包含值。

于 2012-10-08T11:32:04.203 回答