【问题标题】:C++: Unzipping the XML file from hard disk to memory and loading the XML file from memoryC++:将XML文件从硬盘解压到内存并从内存中加载XML文件
【发布时间】:2013-11-30 04:39:04
【问题描述】:
  1. 按下保存按钮时,我想压缩 XML 格式的 dae (COLLADA) 文件并使用密码保护它。
  2. 按下打开按钮时,我想 (a) 将这些 XML 文件从硬盘解压缩到内存,(b) 从内存加载 XML 文件,以及 (c) 将 XML 文件的内容复制到字符串(char *) (出于安全原因,我不应该将 XML 文件复制到硬盘,我应该使用强方法添加密码)。

问题:是否有可能实现这些步骤?由于我的客户可能使用大型 XML 文件,因此我需要功能强大且仍然快速的 API 来处理这些阶段。

【问题讨论】:

    标签: xml memory zip collada


    【解决方案1】:

    当然可以,只要您有足够的 RAM 内存和磁盘上的交换空间。

    我会考虑使用 gSOAP Toolkit http://gsoap2.sourceforge.net/ 自动将 XML 转换为 C 和 C++ 数据。

    【讨论】:

    • 您建议使用哪些 API 来处理这些阶段?
    • 我不想解析 XML 数据。它由 COLLADA DOM 完成。我只需要将 ZIP 文件解压缩到内存并将 XML 数据加载到 char* 缓冲区并将其传递给 COLLADA DOM 以解析 XML 数据。您建议使用什么 zip 工具?我尝试使用 ifstream 将 XML 数据从硬盘复制到缓冲区。但它无法加载 XML 数据。而且,C/C++似乎没有从内存中读取文件的标准函数。
    • 关于解压到内存,检查这个答案stackoverflow.com/questions/10781693/…,也许这个对代码sn-ps有帮助stackoverflow.com/questions/14913870/…
    猜你喜欢
    • 1970-01-01
    • 2011-09-11
    • 2017-06-29
    • 1970-01-01
    • 2021-05-23
    • 1970-01-01
    • 2019-07-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多