【问题标题】:Save byte pointer to a file将字节指针保存到文件
【发布时间】:2015-07-21 18:27:46
【问题描述】:

我正在使用 ProtonSDK (www.protonsdk.com)

我正在尝试使用此功能

byte *pData = GetFileManager()->Get("texturefile.rttex", &fileSizeBytes, true, true);

我想将输出保存到一个文件(解压缩的 RTPACK),但它不想。

我是 C++ 的新手,但我有 PHP 的背景

【问题讨论】:

  • 你得到什么错误信息?怎么不行?
  • 保存指向永久存储的指针通常是浪费时间。下次几乎可以肯定不会为您分配相同的内存位置,如果您这样做了,数据几乎肯定不会在那里。您是否想保存指向的数据?
  • 我想将解压后的数据保存到文件中
  • Lubomir,指针为空 if(!pData)
  • 那个 protonsdk 网站很烦人。 API 文档到底在哪里?我喜欢边走边学,但这太愚蠢了!

标签: c++ linux sdk


【解决方案1】:

您可以使用 C++ 标准库将其写入文件。

http://www.cplusplus.com/doc/tutorial/files/

或者 C 标准库。

写入pData指向的数据。

#include <stdio.h>
#include <stdlib.h>

/* Proton SDK header */
/* header with byte type (not part of C standard library) */

int main(int argc, char** argv)
{
        int fileSizeBytes;
        FILE* fp;

        byte *pData = GetFileManager()->Get(GetSavePath()+"test.txt", &fileSizeBytes, true);

        fp = fopen("put_filename_here", "w");
        if(fp == NULL) {
                fprintf("Cannot open file!\n");
                exit(-1);
        }
        fwrite(pData, fileSizeBytes, sizeof(byte), fp);
        fclose(fp);
        return 0;
}

将 pData 本身写入文件。 fwrite(&amp;pData, 1, sizeof(pData), fp);

【讨论】:

  • 当我检查它是否为空时,pData 为空
  • 您是否查看了 GetFileManager() 的文档?好像打不开文件。
  • 打开文件。它将打印一个错误,表明文件无法打开。
  • GetFileManager 不是标准库的一部分。它是 Proton SDK 的一部分吗?
  • 是的,它是 ProtonSDK 的一部分。从 SVN 存储库中,它在 shared/FileSystem/FileManager.h 中声明
猜你喜欢
  • 2021-05-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-19
  • 1970-01-01
  • 2013-10-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多