想做一个使用ftp自动更新的模块,需要读取xml文档并于服务器的数据核对然后下载,本以为按照网上的教程可以解决但是中间还是遇到了许多问题,这里就记录一下步骤。
配置
- Visual Studio 2022
- tinyxml,下载链接:TinyXML
步骤
- 直接使用nuget下载tinyxml包最后会报错,原因是包里面是Win32编译的,所以最后会出现错误
- 根据下载的包,使用visual studio打开,并新建配置管理器,在里面创建
x64 配置,之后编译tinyxml项目文件,可以一次性将Debug ,Release 版本编译 - 生成后将以下几个文件放到文件夹中方便后期引用
4. 完成这两步之后,进入项目->属性->C\C+±>附加包含目录,将.cpp,.h文件夹添加进去 5. 我们还需要再头文件中引用lib文件不然将会报错
#pragma comment(lib,"D:\\C++ Programming\\MFCAutoUpdateApplication\\src\\tinyxml\\lib\\debug\\tinyxml.lib")
- 下面是一个代码的实例,串接到MFC显示节点名称
#pragma once
#include <string>
#include "tinystr.h"
#include "tinyxml.h"
#include <iostream>
#pragma comment(lib,"D:\\C++ Programming\\MFCAutoUpdateApplication\\src\\tinyxml\\lib\\debug\\tinyxml.lib")
using namespace std;
class ReadXML
{
public:
ReadXML(const char* path);
std::string parentNode;
std::string childNode;
private:
void GetXMLData();
};
inline ReadXML::ReadXML(const char* path)
{
TiXmlDocument* doc = new TiXmlDocument();
if (!doc->LoadFile(path))
{
MessageBox(0, R"(InValid Path)", R"(BiMass)", 0);
}
TiXmlElement* root = doc->RootElement();
TiXmlElement* next = root->FirstChildElement();
parentNode = root->Value();
childNode = next->Value();
}
inline void ReadXML::GetXMLData()
{
cout << "uuuu" << endl;
}
|