gpt4 book ai didi

c++ - 您如何从 CComSafeArray 获取底层 SAFEARRAY?

转载 作者:行者123 更新时间:2023-11-28 07:27:00 27 4
gpt4 key购买 nike

我尝试了 GetSafeArrayPtr() 方法,该方法返回一个 LPSAFEARRAY*,typedef 定义为:

typedef /* [wire_marshal] */ SAFEARRAY *LPSAFEARRAY;

我以为我可以直接将其分配给 SAFEARRAY* 变量,但编译器给出了这个错误:

error C2440: '=' : cannot convert from 'LPSAFEARRAY *' to 'SAFEARRAY *'

我觉得这很奇怪。我在这里做错了什么?

PS:我在 C++/CLI dll 中执行此操作(如果有任何相关性的话)。

最佳答案

LPSAFEARRAY * 是指向 SAFEARRAY * 的指针,因此您需要一个双指针,如下所示:

{
CComSafeArray<VARIANT> vArray;
SAFEARRAY** pArray;
pArray = vArray.GetSafeArrayPtr();
}

然后您可以通过取消引用从 CComSafeArray 返回的指针,将 SAFEARRAY * 作为参数传递给需要它的函数:

DummyFunction(*pArray);

关于c++ - 您如何从 CComSafeArray 获取底层 SAFEARRAY?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18586269/

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