delphi - 使用 CreateOleObject 后释放 OleVariant

标签 delphi activexobject

这是一个简单的代码:

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 中,将变量设置为 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;

最佳答案

OleVariant 超出范围时会自动释放接口(interface)。如果您需要更快地发布,您可以为 OleVariant 分配一个新值。

关于delphi - 使用 CreateOleObject 后释放 OleVariant,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8314183/

相关文章:

sql-server - 用户没有 RESTORE 数据库的权限

asp.net - 如何在 ActiveX 对象上显示模式弹出窗口?

javascript - ReferenceError:Chrome 和 Mozilla 中未定义 ActiveXObject

javascript - XML 解析在 Chrome 中不起作用

javascript - ActiveXObject ('word.application' ) 打开返回未定义

javascript - ActiveX 在 IE 11 中不工作

Delphi - 在 dataset.enablecontrols 上的 TDBGrid 内部触发什么事件

delphi - 我可以让Delphi自动编译RC文件吗?

delphi - 如何知道在应用程序图标上拖放了多少文件?

multithreading - 在 Delphi 线程之间共享 Native 变量