C++ 使用fopen打开.pak文件并使该文件应用于常量无符号字符*(C+;+;)

C++ 使用fopen打开.pak文件并使该文件应用于常量无符号字符*(C+;+;),c++,function,fopen,libpng,unsigned-char,C++,Function,Fopen,Libpng,Unsigned Char,我正在尝试使用fopen上传一个文件(.pak文件),读取它并使其等于块存储 我现在所做的不起作用,我想是因为pfile.data()根本不存在(它是我尝试过的东西的遗留物,因为我做得完全错误而停止了),而且它是一个指针,所以没有意义 我想知道如何使我的文件具有相等的块存储空间,以便通过调用的函数blockdecompressionmagedxt5运行它。我没有包括这个函数,因为它相当长,我认为它不适用于我当前的问题 我对C++非常熟悉,我一直在努力解决这个问题,找出不同的版本,直到我找到了正确

我正在尝试使用fopen上传一个文件(.pak文件),读取它并使其等于
块存储

我现在所做的不起作用,我想是因为pfile.data()根本不存在(它是我尝试过的东西的遗留物,因为我做得完全错误而停止了),而且它是一个指针,所以没有意义

我想知道如何使我的文件具有相等的块存储空间,以便通过调用的函数
blockdecompressionmagedxt5
运行它。我没有包括这个函数,因为它相当长,我认为它不适用于我当前的问题

我对C++非常熟悉,我一直在努力解决这个问题,找出不同的版本,直到我找到了正确的路径,我知道如何处理。
intmain(){
文件*pFile;
pFile=fopen(“C:\Users\erast\Desktop\encrypt.pak”,“r”);
无符号长x=0;
无符号长y=0;
无符号长宽=512;
无符号长高度=512;
const unsigned char*blockStorage=reinterpret_cast(pFile.data());
无符号长*图像=新的无符号长[宽度*高度];
块解压缩magedxt5(宽度、高度、块存储、图像);

我一直在阅读文档并四处询问,我仍然很困惑我的上传文件等于代码> BuffuxStime/Cord>。我已经在这个项目上工作了大约一个月,而且我的基本C++知识非常困难。我一直在学习,但是学习需要时间。< / P>我相信我有FI。我想出了一个办法来完成这项工作。我已经停止使用FOpenE了,因为有人告诉我它是C,并帮助我移到一个更为C++的方法。

#包括
#包括
#包括
#包括
#包括“func.h”
使用namespace::std;
常量std::string readFile(常量std::string&&fileName)无例外{
//将文件作为输入流
std::ifstream文件(文件名);
如果(文件){
//读取数据
std::ostringstream ss;

ss您需要以二进制模式打开文件并使用
fread
功能。我很确定我正确上传了pak文件(将“r”更改为“rb”)在阅读了一些
fread
文档之后,我认为我也正确地阅读了它。不幸的是,我仍然不知道应该如何将从读取文件中获得的数据分配到
blockStorage