從MPQ包中讀取二進制流出來然后文件寫到硬盤。
DWORD size = SFileGetSize(hFile);
char* buffer = new char[size];
std::ofstream ofs;
ofs.open(name);
ASSERT(ofs.good());
ofs.write(buffer, size);
ASSERT(ofs.good());
ofs.close();
.xml,.lua,等文本都是對的,唯獨.jpg這些圖片些不對!
open改為ofs.open(name, std::ios::out | std::ios::binary);
就對了!
原因應該是ofstream打開文件時默認是文本格式吧。。。
void open( const char *_Filename, ios_base::openmode _Mode = ios_base::out, int _Prot = (int)ios_base::_Openprot ); void open( const char *_Filename, ios_base::openmode _Mode ); void open( const wchar_t *_Filename, ios_base::openmode _Mode = ios_base::out, int _Prot = (int)ios_base::_Openprot ); void open( const wchar_t *_Filename, ios_base::openmode _Mode );