c++ - 正确的 VARIANT 初始化

标签 c++ com mfc automation variant

我正在处理一个项目,其中有一些用 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/

相关文章:

windows - 如何查看 ocx 文件的接口(interface)?

c++ - .H 头文件和 IDL 文件的不同用途是什么?

sql-server - 使用 MFC 连接到 Sql Server 的最佳方式

c++ - 在这种情况下是否可以避免使用虚拟方法调用?

c++ - gcc 链接的默认库?

c# - 无法在 Solidworks 插件中加载文件或装配体

visual-c++ - `static char THIS_FILE[] = __FILE__;` 有什么意义?

c++ - 如何在MFC中同时创建两个事件对话框?

c++ - 整型变量的奇数 C/C++ 初始化语法

c++ - 从静态函数调用非静态变量