成都网站建设设计

将想法与焦点和您一起共享

c语言解析文件接口函数 c语言解析json文件

请教C++语言怎么能调用C的接口函数

如果是标准库函数, 都已经封装好了,直接引用对应头文件, 调用即可

创新互联公司基于成都重庆香港及美国等地区分布式IDC机房数据中心构建的电信大带宽,联通大带宽,移动大带宽,多线BGP大带宽租用,是为众多客户提供专业成都移动机房托管报价,主机托管价格性价比高,为金融证券行业服务器托管,ai人工智能服务器托管提供bgp线路100M独享,G口带宽及机柜租用的专业成都idc公司。

如果是自己写的C文件, 调用的时候 需要加上extern "C"声明

c语言如何调用xml的接口函数

/***************

?xml version="1.0" encoding="utf-8"?

Cases

case

No001/No

CopyFile src="C:\test.txt" dest="D:\test.txt"/CopyFile

/case

case

No002/No

DelFileC:\test.txt/DelFile

/case

/Cases

*******************/

// 我们用MFC来读取上述xml,代码如下:

void ReadXml(CString strXmlPath)

{

MSXML2::IXMLDOMDocumentPtr pDoc;

::CoInitialize(NULL);

HRESULT hr = pDoc.CreateInstance(__uuidof(MSXML2::DOMDocument40)); 

if (!SUCCEEDED(hr)) 

{  

MessageBox(_T("创建DOMDocument对象失败。\n请检查运行环境"), _T("错误"), MB_ICONERROR); 

return;

}

// 读取xml

pDoc-put_async(VARIANT_FALSE);

VARIANT_BOOL bhr = pDoc-load((_variant_t)strXmlPath);

if (bhr != VARIANT_TRUE) {

MessageBox(_T("无法正确读取xml文件"), _T("错误"), MB_ICONERROR);

return;

}

// 根节点取得

MSXML2::IXMLDOMElementPtr root = pDoc-documentElement;

// 取得根节点的名字

_variant_t strRootName = root-nodeName;

_bstr_t wstrRootName(strRootName.bstrVal);

MSXML2::IXMLDOMNodeListPtr nodeList = root-GetchildNodes();//cases

// 解析cases的子节点

ReadCases(nodeList);

}

void ReadCases(MSXML2::IXMLDOMNodeListPtr nodeList)

{

int ilength = nodeList-Getlength();

for (int nodeCount = 0; nodeCount  ilength; nodeCount++) {

MSXML2::IXMLDOMNodePtr nodePtr = nodeList-nextNode();

_variant_t strNodeName = nodePtr-GetnodeName();

_variant_t strNodeValue = nodePtr-GetnodeValue();

// 读取case节点下的子节点

ReadCase(nodePtr-GetchildNodes());

}

}

void ReadCase(MSXML2::IXMLDOMNodeListPtr nodeList)

{

CString strLogInfo;

strLogInfo.Empty();

CString strNo;              // case编号

CString strSrcFile;         // 源文件

CString strDestFile;        // 目标文件

for (int nodeCount = 0; nodeCount  nodeList-Getlength(); nodeCount++)

{

MSXML2::IXMLDOMNodePtr nodePtr = nodeList-nextNode();

_variant_t strCaseNodeName = nodePtr-GetnodeName();

_variant_t strCaseNodeValue = nodePtr-Gettext();

BSTR bStrTemp = strCaseNodeName.bstrVal;

CString strTemp = CString(bStrTemp);

SysFreeString(bStrTemp);

CString strNodeName = strTemp;

//  节点的值,如何取得?

if (0 == strNodeName.CompareNoCase(_T("NO")))

{

strNo = (BSTR)strCaseNodeValue.pbstrVal;

// 取得的值可以打印出来

printf(strNo);

}

// 节点有属性值,该怎么处理?

else if (0 == strNodeName.CompareNoCase(_T("CopyFile")))

{

strSrcFile.Empty();

strDestFile.Empty();

// 取得节点的属性值

MSXML2::IXMLDOMNamedNodeMapPtr pDOMAttrList= nodePtr-Getattributes();

for (int j = 0; j  pDOMAttrList-Getlength(); j++)

{

MSXML2::IXMLDOMNodePtr pDOMAttr= pDOMAttrList-Getitem(j); 

// 取得源文件路径

if (CompareNoCase((char*)pDOMAttr-GetnodeName(), _T("src")))

{

strSrcFile = pDOMAttr-GetnodeTypedValue();

// 取得目标文件路径

} else if (CompareNoCase((char*)pDOMAttr-GetnodeName(), _T("dest")))

{

strDestFile =pDOMAttr-GetnodeTypedValue();

}

CopyFile(strSrcFile, strDestFile, FALSE);

}

else if (0 == strNodeName.CompareNoCase(_T("DelFile")))

{

strDestFile.Empty();

strDestFile = CString((BSTR)strCaseNodeValue.pbstrVal);

DeleteFile(strDestFile);

}

}

// 为了能够让MFC认识MSXML2,我们需要引入相应的dll,代码如下;

#import "msxml4.dll"

不我想用C语言操作word文件 不知道有谁有相关的接口函数

#includestdio.h

void main()

{

FILE *fp;

int i;

fp=fopen("ffff.doc","w");

for(i=0;i100;i++)

fprintf(fp,"%d\n",i);

close(fp);

}


分享文章:c语言解析文件接口函数 c语言解析json文件
文章转载:http://chengdu.cdxwcx.cn/article/ddjesei.html