使用Delphi管理变体中的空值

我正在使用一个COM组件,它暴露了很多Variant属性,但有时这些值为null。当我尝试将这些值转换为字符串(或另一种Delphi类型)时,应用程序会引发一个例外:

Could not convert variant of type (Null) into type (String)

但是,如果我使用.net来调用相同的属性,并且值为null,则不会引发异常,并将空值视为空字符串。

我的问题有一种方法来处理这些来自Delphi的空值,避免这些异常?

提前致谢。

解决方法

尝试将 NullStrictConvert设置为False。

由于它是一个全局变量,所以使用它可以减少副作用:

var
  OldNullStrictConvert: Boolean;
begin
  OldNullStrictConvert := NullStrictConvert;
  NullStrictConvert := False;
  try
    // code containing conversions
  finally
    NullStrictConvert := OldNullStrictConvert;
  end;
end;

(实际上我已经做了一个监护人界面。)

注意:如果可行,我更喜欢像Warren这样的代码

相关文章

 从网上看到《Delphi API HOOK完全说明》这篇文章,基本上都...
  从网上看到《Delphi API HOOK完全说明》这篇文章,基本上...
ffmpeg 是一套强大的开源的多媒体库 一般都是用 c/c+&#x...
32位CPU所含有的寄存器有:4个数据寄存器(EAX、EBX、ECX和ED...
1 mov dst, src dst是目的操作数,src是源操作数,指令实现的...