7

簡単なコードを次に示します。

procedure Test;
var
  V: OleVariant;
begin
  V := CreateOleObject('ADOX.Catalog');
  try
    // do something with V...
  finally
    V := Unassigned; // do we need this?
  end;
end;

V := Unassigned最後にコードを使用する必要がありますか、それとも手順Vの範囲内にある場合は無料ですか? TestVB では、変数を Nothing に設定します。ここで同じことをする必要がありますか? すなわち:

function VarNothing: IDispatch;
// emulate VB function SET VarX = Nothing
var
  Retvar: IDispatch;
begin
  Retvar := nil;
  Result := Retvar;
end;

// do something with V and finally:
V := VarNothing;
4

1 に答える 1

9

OleVariantスコープ外になると、インターフェイスが自動的に解放されます。OleVariantすぐにリリースする必要がある場合は、に新しい値を割り当てることができます。

于 2011-11-29T16:54:44.493 に答える