Если вы ориентируетесь на CLR, я настоятельно рекомендую использовать собственную (для CLR) библиотеку Zipping / Zlib, такую как DotNetZip , вместо того, чтобы пытаться заставить собственную библиотеку делать то, что вы хотите.
Я не эксперт по C ++ / CLI, так что это может быть совершенно неправильно, но я считаю, что
String^ info = gcnew String(reinterpret_cast<const char*>(zlibVersion()));
приводит к неопределенному поведению.Причина в том, что конструктор System::String
ожидает массив объектов System::Char
, а не тип данных C ++ char
.System::Char
имеет ширину в два байта, char
имеет ширину в один байт (System::String
поддерживает Unicode; zlib - нет).(В любом случае, reinterpret_cast
- это главный красный флаг - почему вы используете это приведение здесь?)
Кроме того, ошибка 0x7B равна
Имя файла, имя каталога,или неверный синтаксис метки тома.
(0xC там, вероятно, потому что это код NTSTATUS) Убедитесь, что, если вы используете динамически связанную версию Zlib, DLL доступна для вашей программы.открыть где-нибудь.