我已将outputBuffer
声明为Byte
并相应地使用它:
TFile.WriteAllBytes(outputPath,outputBuffer);
当我编译程序时,Delphi输出:
[DCC错误] StormLib.pas(56):E2010不兼容的类型:'System.TArray [System.Byte]和'Byte'
我的变量使用了错误/过时的数据类型吗?我该怎么做才能让我的程序编译?
先谢谢你了!
答案 0 :(得分:7)
请改用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;
答案 1 :(得分:1)
您的错误消息清楚地表明不兼容的类型不是字节和字节,而是TArray&lt; Byte&gt;和字节。坦率地说 - 这就是预期的。字节数远远超过单字节。
制作TArray的变量&lt;字节&gt;输入并使用它来包含值。