MSXML插入节点,release时出错
TCHAR * szPath = new TCHAR [MAX_PATH]; //存放选择的目录路径
CString str;
ZeroMemory(szPath, sizeof(szPath));
BROWSEINFO bi;
bi.hwndOwner = m_hWnd;
bi.pidlRoot = NULL;
bi.pszDisplayName = szPath;
bi.lpszTitle = L"请选择共享的目录:";
bi.ulFlags = 0;
bi.lpfn = NULL;
bi.lParam = 0;
bi.iImage = 0;
//show the dialog to choose the dir
LPITEMIDLIST lp = SHBrowseForFolder(&bi);
if(lp && SHGetPathFromIDList(lp, szPath))
{
m_OwnerListBox->Add(szPath, AfxGetApp()->LoadIcon(IDI_FLDS));
//读取XML
MSXML2::IXMLDOMDocumentPtr spXMLDoc;
spXMLDoc.CreateInstance(__uuidof(MSXML2::DOMDocument30));
spXMLDoc->load(L"config.xml");
MSXML2::IXMLDOMElementPtr spRoot = spXMLDoc->documentElement;
MSXML2::IXMLDOMNodePtr spNewNode = spRoot->selectSingleNode(L"/Win-DMS/SharedFolders")->appendChild(
spXMLDoc->createNode(_variant_t(NODE_ELEMENT), L"Folder", L"")
); //给node2创建新子节点childnode3
spNewNode->text = szPath;
spXMLDoc->save(_variant_t(L"config.xml"));
spNewNode->Release();
spRoot.Release();
spXMLDoc.Release();
}
在Release()的时候出错,求大神指教
[解决办法]
把这些代码都删掉:
spNewNode->Release();
spRoot.Release();
spXMLDoc.Release();
智能指针不需要!