我正在处理一个项目,其中有一些用 C++ 编写的 COM/自动化内容。我知道MFC/ATL有一个漂亮的CComVariant class它负责 VARIANT 初始化,但仅从“纯”VARIANT 的角度来看,我知道以下是推荐的初始化方法:
VARIANT v;
::VariantInit(&v);
但我想知道阅读VariantInit的描述,我可以这样做吗?
VARIANT v = {0};
最佳答案
正如您所发现的,VariantInit
只需将 vt
成员设置为 VT_EMPTY
。它不会将 union 的内容清零,因为 VT_EMPTY 被解释为没有数据。您可以使用任何其他方法将 vt
设置为 VT_EMPTY
,这很好,但标准和正确方法是使用VariantInit
。
关于c++ - 正确的 VARIANT 初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23526653/