3

として宣言outputBufferし、Byteそれに応じて使用しました:

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 であることを明確に示しています。率直に言って、それは予想通りです。バイトの配列は、1 バイトよりもはるかに多くなります。

TArray<Byte> 型の変数を作成し、それを使用して値を格納します。

于 2012-10-08T11:32:04.203 に答える