2009-05-27 14 views
1

Ich versuche, die ZLIB-Erweiterung in ActiveTcl 8.5 zu verwenden, um ein komprimiertes Blob in eine Datei zu speichern. Sowohl ActiveTcl 8.5.5 als auch 8.5.6 auf win32 haben eine Erweiterung zlibtcl 1.2.3. Ich habe beide versucht:Schnittstelle zlib mit ActiveTcl 8.5?

package require zlibtcl 

und

load zlibtcl123.dll 

Welche beide scheinen zu zeigen, dass die Erweiterung ordnungsgemäß geladen wird. Ich kann jedoch nicht herausfinden, welcher Befehl für den Zugriff auf die Erweiterung erforderlich ist. Mir ist bewusst, dass ActiveTcl ab 8.6b1 die zlib-Funktionalität eingebaut hat (http://wiki.tcl.tk/4610), aber ich muss auf vorhandenen Systemen bereitstellen, die 8.5.x verwenden müssen.

So weit ich sagen kann, fügt das Laden der Erweiterung dem Interpreter keine neuen Befehle hinzu, was ziemlich verwirrend ist. Das Ausführen eines Strings auf der DLL scheint keine zusätzlichen Informationen zu offenbaren.

Hinweis: mein Backup-Plan ist SWIG zlib, aber ich würde lieber die vorhandene Erweiterung verwenden, wenn möglich.

Antwort

1

Vielleicht haben Sie mehr Glück mit dem vfs :: zip-Paket. Es gibt ein Beispiel für comp.lang.tcl here.

+0

guter Gedanke. Ich habe es gerade versucht und vfs :: zip scheint nicht Teil der Standardinstallation von ActiveTcl 8.5.5 zu sein ... und ich brauche eine Lösung für diese Laufzeitumgebung. – erichui

+0

Es ist sicherlich Teil der 8.4 ActiveTcl-Installation. Ich denke, dass sie die Anzahl der Standard-Pakete, die mit 8.5 geliefert wurden, wirklich reduziert haben - wenn Sie sich auf die einfache 8.5-Installation beschränken wollen, mit der Sie kämpfen werden. Es ist leicht für 8,5 mit Teetasse herunterladbar. – Jackson

1

zlibtcl wird nur vom Img-Paket verwendet, um die Komprimierung in Bildformaten wie PNG zu verarbeiten. Wie oben vorgeschlagen, versuchen Sie vfs :: zip. Das Trf-Paket lohnt sich auch. Siehe http://wiki.tcl.tk/479

1

Sie können eine Kopie des zlib-Pakets von equi4 erhalten, die es als Teil ihrer Unterstützung für das tclkit Tcl-Interpreter-/Verpackungssystem zur Verfügung stellt. Es unterstützt nicht die vollständige Schnittstelle in 8.6, aber es hat genug, dass Sie komprimieren und dekomprimieren können.

Oder Sie können einfach tclkit statt tclsh/wish verwenden und die zlib-Paket bereits eingebaut haben.