1

ATL 类CComBSTR有一个BSTR成员m_str和一个operator BSTR ()返回m_str.

现在,如果一个函数将 aBSTR *作为参数,是否可以传递 a 的地址CComBSTR

CComBSTR path;
// signature is IzFileFinder::GetDir(CY index, LPBSTR path)
fileFinder->GetDir(INT64toCURRENCY(i), &path);

编译器没有抱怨,但如果真的没问题,为什么它会起作用?

4

1 回答 1

1

您传递的不是 的地址CComBSTR,而是其m_str成员的地址。CComBSTR碰巧提供了一个operator&()返回&m_str.

于 2013-07-11T17:24:28.250 回答