[英]How to check if an object is NULL in Inno Setup Pascal Script?
我正在使用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
但我一直得到invalid variant operation
錯誤。
如何在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
變量中獲取數據,並將這些數據測試為nil
。
Martijn Laan在this commit
中將VarIsClear
函數添加到Inno Setup的Unicode版本,因此自Inno Setup 5.5.6起,您可以使用VarIsClear
而不是上面的hack。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.