我已声明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> 类型的变量并使用它来包含值。