ATL COM中的可空类型 我正在研究C++ ATL/COM中的数据访问。 如何在接口中传递可为null的类型(例如,可为null的整数)?

ATL COM中的可空类型 我正在研究C++ ATL/COM中的数据访问。 如何在接口中传递可为null的类型(例如,可为null的整数)?,com,nullable,atl,Com,Nullable,Atl,在ATL/C++中,在接口(IDL)中,您没有可为null的类,也不支持语言构造(?在C#)。Nullable基本上是类型本身和一个额外的BOOL,指示当前是否有NULL 我们可以实现一个相对简单的模板类来查找—尽可能扩展—类似于C#。在接口上,这将是两个参数,或者正如您所发现的,您可以使用VARIANTtype,因为它已经嵌入了有效负载值和.vt成员指示类型VT\u NULL常量是它对其lef的表示-整个变量的值为NULL。似乎我们需要使用variant\u t()。。。换句话说,我的实体将充

在ATL/C++中,在接口(IDL)中,您没有可为null的类,也不支持语言构造(
在C#)。Nullable基本上是类型本身和一个额外的
BOOL
,指示当前是否有
NULL


我们可以实现一个相对简单的模板类来查找—尽可能扩展—类似于C#。在接口上,这将是两个参数,或者正如您所发现的,您可以使用
VARIANT
type,因为它已经嵌入了有效负载值和
.vt
成员指示类型
VT\u NULL
常量是它对其lef的表示-整个变量的值为NULL。

似乎我们需要使用variant\u t()。。。换句话说,我的实体将充满变体。。。这可能是一种痛苦。有更好的解决方案吗?我正在组件中访问数据库,因此我相信使用variant可能是最好的选择(因为ADO本身使用它)。