想实现ok.prm文件的加载并且在listctrl中显示
可是系统总是显示错误,如下:
MyFormView.obj : error LNK2001: unresolved external symbol _CLSID_DOMDocument40
MyFormView.obj : error LNK2001: unresolved external symbol _IID_IXMLDOMDocument2
MyFormView.obj : error LNK2001: unresolved external symbol "void __stdcall _com_issue_error(long)" (?_com_issue_error@@YGXJ@Z)
MyFormView.obj : error LNK2001: unresolved external symbol "unsigned short * __stdcall _com_util::ConvertStringToBSTR(char const *)" (?ConvertStringToBSTR@_com_util@@YGPAGPBD@Z)
MyFormView.obj : error LNK2001: unresolved external symbol "char * __stdcall _com_util::ConvertBSTRToString(unsigned short *)" (?ConvertBSTRToString@_com_util@@YGPADPAG@Z)
高手帮看看怎么回事,谢谢了
可是系统总是显示错误,如下:
MyFormView.obj : error LNK2001: unresolved external symbol _CLSID_DOMDocument40
MyFormView.obj : error LNK2001: unresolved external symbol _IID_IXMLDOMDocument2
MyFormView.obj : error LNK2001: unresolved external symbol "void __stdcall _com_issue_error(long)" (?_com_issue_error@@YGXJ@Z)
MyFormView.obj : error LNK2001: unresolved external symbol "unsigned short * __stdcall _com_util::ConvertStringToBSTR(char const *)" (?ConvertStringToBSTR@_com_util@@YGPAGPBD@Z)
MyFormView.obj : error LNK2001: unresolved external symbol "char * __stdcall _com_util::ConvertBSTRToString(unsigned short *)" (?ConvertBSTRToString@_com_util@@YGPADPAG@Z)
高手帮看看怎么回事,谢谢了
CMyFormView::CMyFormView()
: CFormView(CMyFormView::IDD)
{
HRESULT hr = CoCreateInstance(CLSID_DOMDocument40,
NULL,
CLSCTX_INPROC_SERVER,
IID_IXMLDOMDocument2,
(void**)&pxmldoc);
if (FAILED(hr))
{
this->pxmldoc=NULL;
}
else{
BSTR bstr = NULL;
VARIANT vSrc;
VARIANT_BOOL status; VariantInit(&vSrc);
V_BSTR(&vSrc) = SysAllocString(L"ok.prm"); V_VT(&vSrc) = VT_BSTR;
pxmldoc->load(vSrc, &status); if(status!=VARIANT_TRUE)
{
if (pxmldoc)
{
pxmldoc->Release();
this->pxmldoc=NULL;
}
}
if (&vSrc) VariantClear(&vSrc);
}
m_ImageList.Create(IDB_BITMAPLIST,16,1,RGB(192,192,192));
}
{
CFormView::OnInitialUpdate();
CListCtrl* pListCtrl=(CListCtrl* )this->GetDlgItem(IDC_LISTXML);
pListCtrl->SetImageList(&m_ImageList,LVSIL_SMALL);
pListCtrl->SetExtendedStyle(LVS_EX_GRIDLINES|LVS_EX_FULLROWSELECT ); CRect rect;
pListCtrl->GetWindowRect(rect); pListCtrl->InsertColumn(0,"编号",LVCFMT_LEFT,150);
pListCtrl->InsertColumn(1,"机能概要",LVCFMT_LEFT,150);
pListCtrl->InsertColumn(2,"添加日期",LVCFMT_LEFT,150); if(pxmldoc){
CComPtr<IXMLDOMNodeList> pDomList; HRESULT hr = pxmldoc->get_childNodes(&pDomList); if(SUCCEEDED(hr)){
long length=0;
if(FAILED(pDomList->get_length(&length)))return; for(int i=0;i<length;i++)
{
CComPtr<IXMLDOMNode> pDomNode;
BSTR nodevalue;
if(FAILED(pDomList->get_item(i,&pDomNode)))return;
if(FAILED(pDomNode->get_nodeName(&nodevalue)))return; _bstr_t xml("xml");
_bstr_t bNodeValue;
if(bNodeValue==xml)continue;
CComPtr<IXMLDOMNodeList> pChildList;
if(FAILED(pDomNode->get_childNodes(&pChildList)))
return; long childLength=0;
if(FAILED(pChildList->get_length(&childLength)))
return; for(int j=0;j<childLength;j++)
{
CComPtr<IXMLDOMNode> projectNode;
if(FAILED(pChildList->get_item(j,&projectNode)))
return; CComPtr<IXMLDOMNodeList> pProjectList;
if(FAILED(projectNode->get_childNodes(&pProjectList)))
return; long projectChildLength;
if(FAILED(pProjectList->get_length(&projectChildLength)))
return; for(int k=0;k<projectChildLength;k++)
{
CComPtr<IXMLDOMNode> projectChildNode;
if(FAILED(pProjectList->get_item(k,&projectChildNode)))
return; BSTR nodeName;
if(FAILED(projectChildNode->get_nodeName(&nodeName)))
return; _bstr_t bNodeName(nodeName);
_bstr_t data("projdatas"); if(bNodeName==data){
CComPtr<IXMLDOMNodeList> pProjectsList;
if(FAILED(projectChildNode->get_childNodes(&pProjectsList)))
return; long projectsLength=0;
if(FAILED(pProjectsList->get_length(&projectsLength)))
return; for(int ind=0;ind<projectsLength;ind++)
{
CComPtr<IXMLDOMNode> projectNode; if(FAILED(pProjectsList->get_item(ind,&projectNode)))
return; CComPtr<IXMLDOMNodeList> projectList;
if(FAILED(projectNode->get_childNodes(&projectList)))
return; long projectNodelength=0;
if(FAILED(projectList->get_length(&projectNodelength)))
return;
_bstr_t icon("smallicon");
_bstr_t col("col2");
_bstr_t col1("col1"); BSTR iconText;
BSTR colText;
BSTR col1Text; for(int first=0;first<projectNodelength;first++)
{
CComPtr<IXMLDOMNode> childNode;
if(FAILED(projectList->get_item(first,&childNode)))
return; BSTR projectNodeName;
if(FAILED(childNode->get_nodeName(&projectNodeName)))
return; _bstr_t bProjectNodeName(projectNodeName);
if(bProjectNodeName==icon)
{
if(FAILED(childNode->get_text(&iconText)))
return;
}
else if(bProjectNodeName==col)
{
if(FAILED(childNode->get_text(&colText)))
return;
}
else if(bProjectNodeName==col1)
{
if(FAILED(childNode->get_text(&col1Text)))
return;
}
} _bstr_t bIconText(iconText);
_bstr_t bColText(colText);
_bstr_t bCol1Text(col1Text); int iconIndex=0;
_bstr_t bBug("bug");
_bstr_t bError("error");
if(bIconText==bBug)iconIndex=1;
else if(bIconText==bError)iconIndex=2;
int nItem=pListCtrl->InsertItem(pListCtrl->GetItemCount()
,bCol1Text,iconIndex); pListCtrl->SetItemText(nItem,1,bColText);
CTime t=CTime::GetCurrentTime();
pListCtrl->SetItemText(nItem,2,t.Format("%Y-%m-%d"));
}
} }
}
}
}
}
((CMainFrame*)AfxGetApp()->GetMainWnd())->OnMyRequest();
pListCtrl->DeleteItem(pListCtrl->GetItemCount()-1);
}
这个会生成一个.h 和.c文件自动加入到工程里面,编译就不会有这个问题了
using namespace MSXML2;应该就没有问题了吧