描述:
用全局变量可以满足要求,除此之外呢?
我试着声明为类的成员变量,根本不行,由于采用的是多继承。
不知道大家有什么别的办法?
解决方案1:
用成员变量肯定没问题,像这样都没有问题:
template< class _T >
struct ATL_NO_VTABLE IMyTestImpl : public IMyTest
{
STDMETHOD(SetVal)(long lVal)
{
_T * pThis = static_cast<_T*>(this);
pThis->m_lVal = lVal;
return S_OK;
}
STDMETHOD(GetVal)(long* lval)
{
if( !lval ) return E_POINTER;
_T * pThis = static_cast<_T*>(this);
*lval = pThis-> m_lVal;
return S_OK;
}
};
class ATL_NO_VTABLE CXXXXOBJ :
public CComObjectRootEx<XXXXXX>,
public CComCoClass<CXXXXX, &CLSID_XXXXXX>,
public ......,
public IMyTestImpl<CXXXXXOBJ>
{
public:
long m_lVal;
public:
.........
}
这个好像没有问题啊,定义成成员变量肯定没问题的,咔咔
不大清楚你在问什么问题
类的成员在哪里声明就在哪里声明
ATL中,还不是类吗
声明为类的成员变量
解决方案5:声明为接口实现类的成员变量!