加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

inno-setup – 如何在Inno Setup Pascal脚本中检查对象是否为NUL

发布时间:2020-12-15 04:04:03 所属栏目:大数据 来源:网络整理
导读:我正在使用Inno setup studio编写一个pascal函数,它检查对象是否为null并执行某些操作 到目前为止我有: XMLDocument.setProperty('SelectionLanguage','XPath');XMLNode := XMLDocument.selectSingleNode(APath);if (XMLNode=Null) thenbegin//do stuffEndE
我正在使用Inno setup studio编写一个pascal函数,它检查对象是否为null并执行某些操作

到目前为止我有:

XMLDocument.setProperty('SelectionLanguage','XPath');
XMLNode := XMLDocument.selectSingleNode(APath);
if (XMLNode=Null) then
begin
//do stuff
End
Else
//do other stuff
End

但我一直得到无效的变种操作错误.

如何在Inno Setup Pascal脚本代码中检查对象是否为空?

解决方法

要检查Variant是否为NULL,请使用 VarIsNull函数:
if VarIsNull(XMLNode) then

但是,在您的情况下,问题稍微复杂一些. selectSingleNode方法始终返回类型varDispatch的变体,其实际数据指针指向找到的XML DOM节点,或者在没有找到此类节点的情况下返回nil.在Delphi(编写Inno Setup Pascal Script的语言)中,有VarIsClear功能也涵盖了这种情况.不幸的是,它没有在Inno Setup中发布.但是,您可以使用如下语句测试此案例:

if (IDispatch(XMLNode) = nil) then

这将从返回的varDispatch变体中获取数据,并将这些数据测试为零.

Martijn Laan在this commit中将VarIsClear函数添加到Inno Setup的Unicode版本中,因此自Inno Setup 5.5.6起,您可以使用VarIsClear而不是上面的hack.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读