gpt4 book ai didi

c++ - CComVariant 与 _variant_t、CComBSTR 与 _bstr_t

转载 作者:IT老高 更新时间:2023-10-28 22:12:35 24 4
gpt4 key购买 nike

我正在使用 ATL(VS2008,所以 ATL9 IIRC)来创建 COM 对象,并且一直在使用 CComVariant 类(在 atlcomcli.h 中定义)来管理 VARIANT 类型。但是,还有另一个 VARIANT 包装器,称为 _variant_tCComVariant_variant_t 之间有什么区别,我应该使用哪一个?

同样,有两个 BSTR 包装器可用 - CComBSTR_bstr_t。同样,我应该更喜欢哪个,为什么?

最佳答案

_variant_t 和 _bstr_t 由编译器提供为 COM support classes并在您使用 #import 之类的结构时使用。如果您愿意,可以使用它们。

CComVariant 和 CComBSTR 由 ATL libraries 提供.

您是使用 COM 支持类还是 ATL 类取决于您。如果您经常需要执行附加到“原始”BSTR 或 VARIANT 等操作,COM Support 类可能是更安全的选择。

存在一些行为差异(查看文档),其中最重要的似乎是 COM 支持类会在失败时抛出 _com_error& 异常。如果您不想进行异常处理,请使用 ATL 类。

关于c++ - CComVariant 与 _variant_t、CComBSTR 与 _bstr_t,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2288834/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com