下面一段是MSDN上的源码
https://msdn.microsoft.com/en-us/library/ms757021(v=vs.85).aspx#include <stdio.h>
#include <tchar.h>
#import <msxml6.dll>void dynamDOMsmart()
{
MSXML2::IXMLDOMDocumentPtr pXMLDom;
HRESULT hr = pXMLDom.CreateInstance(__uuidof(MSXML2::DOMDocument60), NULL, CLSCTX_INPROC_SERVER);
if (FAILED(hr))
{
printf("Failed to instantiate an XML DOM.\n");
return;
} try
{
pXMLDom->async = VARIANT_FALSE;
pXMLDom->validateOnParse = VARIANT_FALSE;
pXMLDom->resolveExternals = VARIANT_FALSE;
pXMLDom->preserveWhiteSpace = VARIANT_TRUE; // Create a processing instruction targeted for xml.
MSXML2::IXMLDOMProcessingInstructionPtr pi = pXMLDom->createProcessingInstruction(L"xml", L"version='1.0'");
pXMLDom->appendChild(pi); // Create a comment for the document.
MSXML2::IXMLDOMCommentPtr pc = pXMLDom->createComment(L"sample xml file created using XML DOM object.");
pXMLDom->appendChild(pc); // Create the root element (i.e., the documentElement).
MSXML2::IXMLDOMElementPtr pRoot = pXMLDom->createElement(L"root"); // Create a "created" attribute for the root element and
// assign the "using dom" character data as the attribute value.
MSXML2::IXMLDOMAttributePtr pa = pXMLDom->createAttribute(L"created");
pa->value = L"using dom";
pRoot->setAttributeNode(pa); // Next, we will create and add more nodes to the root element 
// we've just created. // Create an element to hold text content.
MSXML2::IXMLDOMElementPtr pe = pXMLDom->createElement(L"node1");
// Add newline + tab for indentation.
pRoot->appendChild(pXMLDom->createTextNode(L"\n\t"));
pe->text = L"some character data";
pRoot->appendChild(pe); // Create an element to hold a CDATA section.
pe = pXMLDom->createElement(L"node2");
// Add newline + tab for indentation.
pRoot->appendChild(pXMLDom->createTextNode(L"\n\t"));
pe->appendChild(pXMLDom->createCDATASection(L"<some -up text>"));
pRoot->appendChild(pe); // Create an element to hold three empty subelements.
pe = pXMLDom->createElement(L"node3");
// Add newline +tab for indentation.
pRoot->appendChild(pXMLDom->createTextNode(L"\n\t")); MSXML2::IXMLDOMDocumentFragmentPtr pdf = pXMLDom->createDocumentFragment();
pdf->appendChild(pXMLDom->createTextNode(L"\n\t\t"));
pdf->appendChild(pXMLDom->createElement(L"subNode1"));
pdf->appendChild(pXMLDom->createTextNode(L"\n\t\t"));
pdf->appendChild(pXMLDom->createElement(L"subNode2"));
pdf->appendChild(pXMLDom->createTextNode(L"\n\t\t"));
pdf->appendChild(pXMLDom->createElement(L"subNode3"));
pdf->appendChild(pXMLDom->createTextNode(L"\n\t"));
pe->appendChild(pdf);
pRoot->appendChild(pe); pRoot->appendChild(pXMLDom->createTextNode(L"\n")); // Add the root element to the DOM instance.
pXMLDom->appendChild(pRoot); printf("Dynamically created DOM:\n%s\n", static_cast<PCSTR>(pXMLDom->xml)); hr = pXMLDom->save(L"dynaDOMsmart.xml");
if (SUCCEEDED(hr))
{
printf("DOM saved to dynaDOMsmart.xml\n");
}
else
{
printf("Failed to save DOM to dynaDomsmart.xml\n");
}
}
catch (_com_error errorObject)
{
printf("exception thrown, HRESULT: 0x%08x", errorObject.Error());
}
}int _tmain(int argc, _TCHAR* argv[])
{
HRESULT hr = CoInitialize(NULL);
if (SUCCEEDED(hr))
{
dynamDOMsmart();
CoUninitialize();
}
return 0;
}复制到VS2015下,结果像pRoot->appendChild之类的都有波浪线,提示没有成员
编译能通过,运行没问题,但有活动(错误).不过在VS2008里倒没问题.有什么办法可以消除这个波浪线么,实在太难看了