【发布时间】:2012-06-19 13:50:13
【问题描述】:
我有一个 ATL COM 组件方法,它将 BSTR 作为 in 参数。我需要在一个数组中添加对该方法的每个调用。我不能使用 SAFEARRAY,因为它是固定大小的,所以我认为 std::vector 将是最简单的选择。当然,我需要为向量的每个添加调用 SysAllocString。这意味着在销毁向量之前,需要为每个条目调用 SysFreeString。
我正在寻找一种更简单/更清洁的解决方案,并考虑将向量声明为向量<_bstr_t>,其中包括自动清理。然而,在我的脑海中,有一些事情正在引发警报,因为它实际上是一个标准容器中的智能指针。我的担心是否合理,或者我可以安全地这样做吗?如果没有,还有其他更好的解决方案吗?
【问题讨论】: