下面是一个简单的代码:
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存在于Test过程的作用域时,它将是免费的吗?在VB中,您可以将变量设置为空。我们需要在这里做同样的事情吗?即:
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;发布于 2011-11-30 00:54:44
当接口超出范围时,OleVariant会自动释放它。如果您需要更快地释放OleVariant,可以为其分配一个新值。
https://stackoverflow.com/questions/8314183
复制相似问题