gfileloader.cpp
来自「用FREE BASIC做的演示程序」· C++ 代码 · 共 66 行
CPP
66 行
#include"GFileLoader.h"
#include"GPacker.h"
#include<fstream>
#include<assert.h>
using namespace std;
GFileLoader::GFileLoader(GVPacker*pPacker)
{
m_pPacker=pPacker;
}
GFileLoader::~GFileLoader()
{
}
bool GFileLoader::LoadFile(const string & strFileName,GFileData & fd)
{
if(NULL==m_pPacker)
{
ifstream infile;
infile.open(strFileName.data(),ios::in|ios::binary);
if(!infile.is_open())
{
return false;
}
infile.seekg(0,ios::end);
unsigned long dwDataSize=infile.tellg();
infile.seekg(0,ios::beg);
fd.AllocMemory(dwDataSize);
if(!fd.GetData())
return false;
infile.read(fd.GetData(),dwDataSize);
infile.close();
return true;
}
else
{
return m_pPacker->ReadPackedFile(strFileName,fd);
}
}
bool GFileLoader::LoadFile(const string & strFileName,char**ppData,unsigned long & dwDataSize)
{
assert(ppData);
if(NULL==m_pPacker)
{
ifstream infile;
infile.open(strFileName.data(),ios::in|ios::binary);
if(!infile.is_open())
{
return false;
}
infile.seekg(0,ios::end);
dwDataSize=infile.tellg();
infile.seekg(0,ios::beg);
*ppData=new char[dwDataSize];
if(!(*ppData))
{
return false;
}
infile.read(*ppData,dwDataSize);
infile.close();
return true;
}
else
{
return m_pPacker->ReadPackedFile(strFileName,ppData,dwDataSize);
}
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?