ATL::CComVariant
には少数の代入演算子があります。実装で私が目にするのは、代入演算子が を受け入れるかLPCOLESTR
、最初のアクションが を呼び出すことです。IUnknown*
IDispatch*
Clear()
同じオブジェクトのメンバー変数が渡されるような方法で演算子が呼び出された場合
CComVariant variant;
variant = L"string";
variant = variant.bstrVal;
(同じ効果を持つより愚かな方法があります)Clear()
は、カプセル化されたオブジェクトを解放し、現在ぶら下がっているポインターに対するその後のすべてのアクションは、未定義の動作をもたらします。
私は正しいですか、それとも何か誤解していますか?