LoadDOM.cpp源代码
来源:互联网 发布:tm域名 编辑:程序博客网 时间:2024/05/21 06:24
LoadDOM.cpp源代码
这个C/C++源代码以下几个执行步骤:
1、 创建一个XML DOM对象并将其设置为同步模式。
2、 在pXMLDom中调用load方法,指定stocks.xml的路径。
添加loadDOM.cpp 到工程
1、 创建一个新的C++源文件。如何创建的详细阐述请参照——建立我的VisualC++项目。将文件命名为loadDOM.cpp。
2、 将以上C/C++代码拷贝并粘贴到你刚刚创建的文件中。
3、 接下来我们添加stocks.xml源文件。
C/C++源文件(loadDom.cpp)
#include <stdio.h>
#include <windows.h>
#import <msxml3.dll> raw_interfaces_only
using namespace MSXML2;
// Macro that calls a COM method returning HRESULT value:
#define HRCALL(a, errmsg) /
do { /
hr = (a); /
if (FAILED(hr)) { /
dprintf( "%s:%d HRCALL Failed: %s/n 0x%.8x = %s/n", /
__FILE__, __LINE__, errmsg, hr, #a ); /
goto clean; /
} /
} while (0)
// Helper function that put output in stdout and debug window
// in Visual Studio:
void dprintf( char * format, ...)
{
static char buf[1024];
va_list args;
va_start( args, format );
vsprintf( buf, format, args );
va_end( args);
OutputDebugStringA( buf);
printf("%s", buf);
}
// Helper function to create a DOM instance:
IXMLDOMDocument * DomFromCOM()
{
HRESULT hr;
IXMLDOMDocument *pxmldoc = NULL;
HRCALL( CoCreateInstance(__uuidof(DOMDocument30),
NULL,
CLSCTX_INPROC_SERVER,
__uuidof(IXMLDOMDocument),
(void**)&pxmldoc),
"Create a new DOMDocument");
HRCALL( pxmldoc->put_async(VARIANT_FALSE),
"should never fail");
HRCALL( pxmldoc->put_validateOnParse(VARIANT_FALSE),
"should never fail");
HRCALL( pxmldoc->put_resolveExternals(VARIANT_FALSE),
"should never fail");
return pxmldoc;
clean:
if (pxmldoc)
{
pxmldoc->Release();
}
return NULL;
}
int main(int argc, char* argv[])
{
IXMLDOMDocument *pXMLDom=NULL;
IXMLDOMParseError *pXMLErr=NULL;
BSTR bstr = NULL;
VARIANT_BOOL status;
VARIANT var;
HRESULT hr;
CoInitialize(NULL);
pXMLDom = DomFromCOM();
if (!pXMLDom) goto clean;
VariantInit(&var);
V_BSTR(&var) = SysAllocString(L"stocks.xml");
V_VT(&var) = VT_BSTR;
HRCALL(pXMLDom->load(var, &status), "");
if (status!=VARIANT_TRUE) {
HRCALL(pXMLDom->get_parseError(&pXMLErr),"");
HRCALL(pXMLErr->get_reason(&bstr),"");
dprintf("Failed to load DOM from stocks.xml. %S/n",
bstr);
goto clean;
}
HRCALL(pXMLDom->get_xml(&bstr), "");
dprintf("XML DOM loaded from stocks.xml:/n%S/n",bstr);
clean:
if (bstr) SysFreeString(bstr);
if (&var) VariantClear(&var);
if (pXMLErr) pXMLErr->Release();
if (pXMLDom) pXMLDom->Release();
CoUninitialize();
return 0;
}
- LoadDOM.cpp源代码
- cpp开源代码
- ACE源代码之array.cpp
- Android MediaScanner.cpp 源代码解析
- caffe-layer.hpp-layer.cpp源代码讲解
- 一个驱动程序的源代码Driver.cpp,接上篇
- 简单游戏外挂,植物大战僵尸外挂,附cpp源代码
- cpp
- CPP
- CPP
- cpp
- cpp
- CPP
- CPP
- 粗糙集(Roug Set)属性约简源代码(C/C++实现)Part2 Set.cpp
- 粗糙集(Roug Set)属性约简源代码(C/C++实现)Part4 Element.cpp
- 粗糙集(Roug Set)属性约简源代码(C/C++实现)Part6 DecisionTable.cpp
- struck(结构化SVM用于视觉跟踪)--源代码详解--main.cpp
- 在一个事件上绑定多个函数
- Groovy探索 对字符串编写Groovy风格的代码
- 用C#编写ActiveX控件(一)
- 解决IIS中HTTP/1.1 500 Server Error错误的方法
- 从XML文件加载一个XML DOM对象
- LoadDOM.cpp源代码
- 通过对POI组件,实现对Excel表格合并的读写操作
- 内容管理系统YESTEM CMS
- NNT公司管理系统
- 关于sql动态行列转换,及多行内容合并为一行的写法
- DbUnit入门实战
- 12.00 积分快没了
- ce6下无明显针对MFC的组件,M$已经准备放弃MFC了
- 一个资深主管的10条职场感悟(转载)