【发布时间】:2019-01-27 18:13:53
【问题描述】:
我致力于创建游戏。我想隐藏我所有的 .tga 文件。 我将我所有文件的字符串内容连接到一个文件中,以使其对玩家不可见。 我希望我的程序通过创建一个临时的 .tga 文件来加载图片 保存的内容。
因此,我正在尝试从原始文件的内容中复制一个 .tga 文件。 更准确地说,我将 .tga 文件作为文本读取并写入。 尽管 Notepad++ 发现原始文件和新文件相同,但新文件不能作为 .tga 文件打开。 Windows 检测偏移量为 1 字节的文件的大小。
你能解释一下我做错了什么吗? 或者可能会建议我一个更好的方法来隐藏我的文件。
问候
【问题讨论】:
-
那个问题和c++有什么关系,你的问题没有涉及c++代码。
-
tga 不是基于文本的文件格式,而是二进制格式。使用旨在使用文本复制二进制数据的编辑器肯定会导致数据损坏。所以使用适当的工具来连接多个二进制文件。
-
很难就我们看不到的程序中的错误提出建议...如果您希望在文本中显示二进制图像文件(例如
tga) b> 编辑器,考虑 base64 编码。 -
首先,@t.niese 所说的。使用二进制数据作为字符串是一个很大的禁忌。其次,即使您连接二进制数据,任何有权访问它并了解 TGA 格式规范的人都可以轻松地恢复数据。(例如 paulbourke.net/dataformats/tga )。我建议您研究现有的许多可用开源引擎使用的打包游戏数据的方法。