でTStreamには作成できませんは、それはこの単純な例では失敗したラザロ
Project project1 raised exception class 'External: SIGSEGV'.
At address 10000DB38
でTStreamには作成できませんは、それはこの単純な例では失敗したラザロ
Project project1 raised exception class 'External: SIGSEGV'.
At address 10000DB38
あなたは間違ったコードを使用しています。それが作成されるまでは
procedure TForm1.Button1Click(Sender: TObject);
var
ts: TStream;
begin
ts := TStream.Create; // If Lazarus supports creation of Stream instances.
ts.Free;
end;
する必要があり、あなたの変数ts
は単にスタックの以前の使用からジャンクが含まれています。ヒープ上の実際のオブジェクトを割り当てるためにクラスのコンストラクタを呼び出さなければならず、ts
の変数を指している必要があります。
ラザロが、それは、(それは抽象クラスとして扱うことと、私がチェックするには、このマシン上でラザロを持っていない)TStreamにのインスタンスを作成する代わりに、このような何かを試すことができないと文句を言いた場合:
var
ts: TMemoryStream;
begin
ts := TMemoryStream.Create;
ts.Free;
end;
TMemoryStreamではなく、他の具体的なTStream-descendantクラスを使用できます。
memStream.Create;
しかし、それは次のようになります:
はもともと、このコードをしようとしていた
memStream := TMemoryStream.Create;
何とか...
これはそうではない倍以上の重複数百のですか? –
@DavidHeffernan:問題は、質問者が何を尋ねるかを知っていれば、最初に問題がないので質問する必要がないということです。私の驚きではなく、ますます間違いなくGoogleは、ヒットの最初のページで「delphi create access violation」というグーグルを返すことはありません。最近では、最初の2〜3日で正しい答えが見つかるようです。 – MartynA
あなたのGoogleが何をしているのかはっきりしていませんが、ここでそれらの検索用語が私の提案した二重引用符を最初のヒットとして返します。 –