我想调用一个COM方法,它需要一个BSTR数组和指定数组大小的单独参数,然后填充数组。下面的工作是否正常 - 它会编译,但我想确定&*
,因为我知道sys-strings通常都在等待每次机会绊倒我!
vector<BSTR> strings(5);
BSTR *pStrings = &*strings.begin();
pComInterface->method(strings.size(),pStrings);
答案 0 :(得分:1)
假设COM接口方法接收到std :: size_t(或等效)和BSTR *,您可能应该使用std :: vector :: data()而不是解引用迭代器:
pComInterface->method(strings.size(), strings.data());