gpt4 book ai didi

c++ - CComSafeArray MultiDimSetAt 是否制作引用元素的拷贝?

转载 作者:太空宇宙 更新时间:2023-11-04 14:27:52 26 4
gpt4 key购买 nike

CComSafeArray::SetAt method提供一个参数来控制引用的变量是否被复制:

HRESULT SetAt(
LONG lIndex,
const T& t,
BOOL bCopy = TRUE
);

... 但是 CComSafeArray::MultiDimSetAt method不提供相同的参数:

HRESULT MultiDimSetAt(
const LONG * alIndex,
const T& t
);

两个问题:

1.) MultiDim 方法中未提供此选项是否有原因?

2.) 文档没有指定引用的变量是否被复制。它是隐式复制的吗?

(在我的例子中,我希望它被复制,因为它是 VARIANT 类型的临时包装器,可以在将其设置到数组后“分离”)

最佳答案

内部 MultiDimSetAt 使用 SafeArrayPutElement 函数。这意味着 BSTR 将被复制,对象将被添加引用。

关于c++ - CComSafeArray MultiDimSetAt 是否制作引用元素的拷贝?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2329655/

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