次の方法で共有


CComBSTR::operator &

m_str メンバーに格納された BSTR のアドレスを返します。

BSTR* operator &( ) throw( );

解説

CComBstr operator & には特殊なアサーションが関連付けられており、メモリ リークの識別に役立ちます。m_str メンバーが初期化されると、プログラムがアサートします。このアサーションが作成された場合は、プログラマが最初の m_str の割り当てを解放せずに、& operator を使用して新しい値を m_str メンバーに割り当てた状況を示しています。m_str が NULL に等しい場合、プログラムは m_str がまだ割り当てられていないと見なします。この場合、プログラムによるアサートは発生しません。

既定では、このアサーションは無効になっています。このアサーションを有効にするに ATL_CCOMBSTR_ADDRESS_OF_ASSERT を定義します。

使用例

#define ATL_NO_CCOMBSTR_ADDRESS_OF_ASSERT

void MyInitFunction(BSTR* pbstr)
{
   ::SysReAllocString(pbstr, OLESTR("Hello World"));
   return;
}
CComBSTR bstrStr ;
// bstrStr is not initialized so this call will not assert.
MyInitFunction(&bstrStr); 

CComBSTR bstrStr2(OLESTR("Hello World"));
// bstrStr2 is initialized so this call will assert.
::SysReAllocString(&bstrStr2, OLESTR("Bye"));

必要条件

Header: atlbase.h

参照

関連項目

CComBSTR クラス