vlax 变体类型 (AutoLISP/ActiveX)
确定变体的数据类型 支持的平台:仅限 Windows 签名(vlax-variant-type var)
返回值类型:整数 如果 var 包含变体,则返回以下数值之一: 0 -- 未初始化 (vlax-vbEmpty) 1 -- 不包含有效数据 (vlax-vbNull) 2 -- 整数 (vlax-vbInteger) 3 -- 长整数 (vlax-vbLong) 4 -- 单精度浮点数 (vlax-vbSingle) 5 -- 双精度浮点数 (vlax-vbDouble) 8 -- 字符串 (vlax-vbString) 9 -- 对象 (vlax-vbObject) 11 -- 布尔值 (vlax-vbBoolean) 8192+n -- 某种数据类型的安全数组 ()。例如,doubles () 数组返回 8197 (8192 + 5)。vlax-vbArrayvlax-vbDouble 如果 var 不包含变体,则会导致错误。 例子将变体设置为并显示变体的数据类型:nil (setq varnil (vlax-make-variant nil)) #<variant 0 > (vlax-variant-type varnil) 0 将变体设置为整数值,并将变体显式定义为整数数据类型: (setq varint (vlax-make-variant 5 vlax-vbInteger)) #<variant 2 5> (vlax-variant-type varint) 2 将变体设置为整数值并显示变体的数据类型: (setq varint (vlax-make-variant 5)) #<variant 3 5> (vlax-variant-type varint) 3 请注意,如果不显式地将数据类型定义为 ,则整数赋值将生成长整数数据类型。vlax-variant-variant 将变体设置为字符串并显示变体的数据类型: (setq varstr (vlax-make-variant "ghost")) #<variant 8 ghost> (vlax-variant-type varstr) 8 创建一个 doubles 的 safearray,将 safearray 分配给变体,并显示变体的数据类型: (setq 4dubs (vlax-make-safearray vlax-vbDouble '(0 . 3))) #<safearray...> (setq var4dubs (vlax-make-variant 4dubs)) #<variant 8197 ...> (vlax-variant-type var4dubs) 8197 变体类型值大于 8192 表示变体包含某种类型的安全数组。从返回值中减去 8192 以确定安全数组的数据类型。在此示例中,8197-8192=5 ()。vlax-vbDouble 为变量分配一个实际值,然后发出以检查变量的数据类型:vlax-variant-type (setq notvar 6.0) 6.0 (vlax-variant-type notvar) ; *** ERROR: bad argument type: variantp 6.0 最后一个示例会导致错误,因为传递给的变量不包含变量。vlax-variant-type 相关参考 |
|Archiver|CAD开发者社区
( 苏ICP备2022047690号-1 苏公网安备32011402011833)
GMT+8, 2025-3-14 07:53
Powered by Discuz! X3.4
Copyright © 2001-2021, Tencent Cloud.