1

我知道 SafeArrayAccessData 也进行锁定/解锁,但没关系,我只想知道它是否返回一个不同于pvData.

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

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

有谁知道SafeArrayAccessData会产生不等于的指针的情况pvData

4

1 回答 1

2

设置外参数指针的唯一方法是函数的返回值不是以外SafeArrayAccessData()(例如,数组不能被锁定,在这种情况下,外参数的值是未指定的)。psa->pvDataS_OK

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

于 2015-03-05T07:20:35.147 回答