有一个这样的声明
_ConnectionPtr *ppConnection = NULL;
ppConnection = new _ConnectionPtr();
(*ppConnection).CreateInstance("ADODB.Connection");
(*ppConnection)->Open("Test","","",adModeUnknown);最后,我要释放空间该怎么做
_ConnectionPtr *ppConnection = NULL;
ppConnection = new _ConnectionPtr();
(*ppConnection).CreateInstance("ADODB.Connection");
(*ppConnection)->Open("Test","","",adModeUnknown);最后,我要释放空间该怎么做
还是(*ppConnection)->Release();
(*ppConnection).Realease();
ppConnection.Release();
{
if((*ppConnection)->State)
{
(*ppConnection)->Close();
}
(*ppConnection).Release();
}
catch (_com_error e)
{}
这样做可确保无误
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~为什么要声明一个二级指针呢?
ppConnection = new _ConnectionPtr();
(*ppConnection).CreateInstance("ADODB.Connection");
(*ppConnection)->Open("Test","","",adModeUnknown);
....
(*ppConnection)->Close();
(*ppConnection).Release();
delete ppConnection;
// 直接这样就可以了三
_ConnectionPtr pConnection;
pConnection.CreateInstance("ADODB.Connection");
pConnection->Open("Test","","",adModeUnknown);
// 这是智能指针,不需要释放