1

ATL クラスCComBSTRには、を返すBSTRメンバーm_strと があります。operator BSTR ()m_str

さて、関数がBSTR *を引数としてとる場合、 のアドレスを渡しても大丈夫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 に答える