首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用CreateOleObject后释放OleVariant

使用CreateOleObject后释放OleVariant
EN

Stack Overflow用户
提问于 2011-11-30 00:25:45
回答 1查看 9.1K关注 0票数 7

下面是一个简单的代码:

代码语言:javascript
复制
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中,您可以将变量设置为空。我们需要在这里做同样的事情吗?即:

代码语言:javascript
复制
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;
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-30 00:54:44

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

票数 9
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8314183

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档