我已声明outputBuffer
为 aByte
并相应地使用它:
TFile.WriteAllBytes(outputPath, outputBuffer);
当我编译我的程序时,Delphi 输出:
[DCC 错误] StormLib.pas(56):E2010 不兼容的类型:'System.TArray[System.Byte] 和 'Byte'
我是否为变量使用了错误/过时的数据类型?我必须做什么才能让我的程序编译?
提前谢谢你!
改为使用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;
您的错误消息清楚地表明不兼容的类型不是 Byte 和 Byte,而是 TArray<Byte> 和 Byte。坦率地说 - 这是预期的。字节数组远不止单字节。
制作 TArray<Byte> 类型的变量并使用它来包含值。