Взаимодействие zlib с ActiveTcl 8.5?

Я пытаюсь использовать расширение zlib в ActiveTcl 8.5, чтобы сохранить сжатый большой двоичный объект в файл. И ActiveTcl 8.5.5, и 8.5.6 на win32 имеют расширение zlibtcl 1.2.3. Я пробовал оба:

package require zlibtcl

а также

load zlibtcl123.dll 

Оба, кажется, указывают на то, что расширение правильно загружено. Однако я не могу понять, какая команда необходима для доступа к расширению. Мне известно, что ActiveTcl 8.6b1 и более поздних версий имеет встроенную функциональность zlib (http://wiki.tcl.tk/4610), однако мне нужно выполнить развертывание в существующих системах, которые должны использовать 8.5.x.

Насколько я могу судить, загрузка расширения не добавляет никаких новых команд в интерпретатор, что довольно сбивает с толку. Выполнение строк в библиотеке DLL, похоже, не раскрывает никакой дополнительной информации.

Примечание: мой план резервного копирования - SWIG zlib, но я бы предпочел использовать существующее расширение, если это возможно.


person erichui    schedule 27.05.2009    source источник


Ответы (3)


Возможно, вам повезет больше с пакетом vfs :: zip. Пример есть на comp.lang.tcl noreferrer.

person Jackson    schedule 27.05.2009
comment
Хорошая мысль. Я просто попробовал это, и vfs :: zip, похоже, не является частью установки ActiveTcl 8.5.5 по умолчанию ... и мне нужно какое-то решение для этой среды выполнения. - person erichui; 27.05.2009
comment
Это, безусловно, часть установки 8.4 ActiveTcl. Я думаю, что они действительно сократили количество пакетов по умолчанию, которые поставлялись с 8.5 - если вы хотите ограничиться базовой установкой 8.5, вам придется бороться. Его легко загрузить для версии 8.5 с помощью чашки. - person Jackson; 28.05.2009

zlibtcl используется только пакетом Img для обработки сжатия в форматах изображений, таких как PNG. Как было предложено выше, попробуйте vfs :: zip. Также стоит изучить пакет Trf. См. http://wiki.tcl.tk/479.

person Community    schedule 19.06.2009

Вы можете получить копию пакета zlib со страницы equi4, которые предоставляют его как часть поддержки tclkit интерпретатора / системы упаковки Tcl. Он не поддерживает полный интерфейс, используемый в 8.6, но в нем достаточно, чтобы вы могли выполнять сжатие и распаковку.

Или вы можете просто использовать tclkit вместо _3 _ / _ 4_ и иметь уже встроенный пакет zlib.

person Donal Fellows    schedule 17.09.2010