c++ - SafeArrayAccessData 会返回一个不同于 pvData 的指针吗?

标签 c++ safearray

我知道 SafeArrayAccessData 也进行锁定/解锁,但没关系,我只想知道它是否会返回不同于 pvData 的指针。

例如,此代码永远不会触发断言(我可以在测试中看到):

SafeArrayAccessData(sa, (void**) &ptr);
assert(ptr == sa->pvData);

有人知道 SafeArrayAccessData 会产生一个不等于 pvData 的指针吗?

最佳答案

SafeArrayAccessData() 设置的输出参数指针不是 psa->pvData 的唯一方法是函数的返回值不是 >S_OK(例如,无法锁定数组,在这种情况下未指定输出参数的值)。

如果函数确实返回 S_OK,则输出参数指针必须等于 psa->pvData(毕竟,它还能是什么?)。

关于c++ - SafeArrayAccessData 会返回一个不同于 pvData 的指针吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28871989/

相关文章:

java - 无法在 mac os x 上分配内存错误 - java(xx,xx) malloc : *** mmap(size=XX) failed (error code=12)

java - 如何将 Eclipse C++ 添加到 Eclipse 经典?

c++ - malloc()/free()/new/delete/delete[] 的算法复杂度是多少?

c++实现时钟来测量执行时间

c++ - 如何根据数组参数项类型重载 IDL 中的函数?

c# - 将 SAFEARRAY 用于 C++ C#

c++ - 在 C++ 中访问派生类变量?

delphi - 如何使用 BSTR 的 SAFEARRAY 显示 VARIANT 中的值

delphi - 我可以从缓冲区 (pByte) 和大小创建 VarArray OleVariant 而不进行复制吗?

c++ - 在 C++ 中迭代 BSTR 的 VARIANT/SAFEARRAY 以分配值并打印到控制台