Ziplib - ziparchive::getentry() возвращает пустую запись в 64-битных сборках
Я пытаюсь реализовать способ для моего игрового движка распаковывать файлы, которые ему нужны. Для этого я использую библиотеку ZipLib, но у меня возникла проблема, когда функция ZipArchive::GetEntry() возвращает пустую запись. Самое странное, что он делает это только в 64-битных сборках. 32-разрядные сборки работают нормально, даже если код точно такой же.
Вот мой код:
std::string LoadSingleFileContent(const std::string& path) { ZipArchive::Ptr archive = ZipFile::Open(m_gameRootPath + DATA_PAK_PATH); if (archive == NULL) { throw(std::exception("Failed to load PAK archive.")); } ZipArchiveEntry::Ptr entry = archive->GetEntry(path); // returns invalid entry on 64-bit builds only std::istream* compressionStream = entry->GetDecompressionStream(); // since entry is invalid, this crashes std::string content(std::istreambuf_iterator<char>(*compressionStream), {}); return content; }
Что я уже пробовал:
Ничего. Я не смог найти никакой информации по этому вопросу :/