描述:
我的接口 Test 申明两个函数:
initialtest(),和movenext();
CTest 类实现接口 Test
class ctest
{
public:
_RecordSet *m_pRec;//想通过它指向智能指针,以便使用它
//实现接口方法,其中智能指针在initialtest()中产生。
initialtest()
{
AFX_MANAGE_STATE(AfxGetStaticModuleState())
_ConnectionPtr pCon(__uuidof(Connection));
pCon->Open(_T("Provider=SQLOLEDB.1;Data Source=***;Initial
Catalog=**"),_T("sa"),_T(""),adOpenUnspecified);
_CommandPtr pCmd(__uuidof(Command));
pCmd->ActiveC />
CString cmdStr;
cmdStr.Format("select * from test");
pCmd->CommandText=cmdStr.operator LPCTSTR();
_RecordsetPtr pRec(__uuidof(Recordset));
pRec->PutRefSource(pCmd);
_variant_t vNull(DISP_E_PARAMNOTFOUND,VT_ERROR);
pRec->Open(vNull,vNull,adOpenDynamic,adLockOptimistic,adCmdText);
m_pRec=pRec;//注意这里,我想在其他地方使用这个pRec
m_pRec->MoveNext();//移动指针没问题
return S_OK;
}
movenext()
{
m_pRec->MoveNext();//移动报错~~~~~~~~
}
各位老兄,我想知道智能指针为什么不能申明为类的成员变量,只能在函数中申明?是不是我不了解它
,还是怎么回是?但我想能在其他地方控制它,我该如何办呢?
注:智能指针在数据成员中这样申明:_ConnectionPtr pCon(__uuidof(Connection));好象通不过编译
。为什么?
紧急问题,高分求解!