Это похоже на 32-разрядную/64-разрядную проблему. Вы не можете смешивать разные битовые размеры в рамках одного и того же процесса †, и вы вполне можете установить 64-битную сборку ActiveTcl 8.6.0.0, полагая, что соответствие размера сборки и архитектуры системы является хорошей идеей , Увы, это не так. ActiveTcl 8.6.0.0 для 64-разрядной Windows, для коммерческих целей ‡, требуется дополнительный ключ продукта для доступа к их 64-битным сборкам внешних пакетов. Но вы все равно установили пакет (возможно, из предыдущей установки ActiveTcl?), И это похоже на 32-битную сборку.
Ошибочная ошибка при использовании неправильного размера сборки бинарной библиотеки является неудачной (относительно небольшая ошибка, возникающая из-за тонких различий между Windows и POSIX и того, как Tcl обрабатывает сопоставление между ними), но я бы сказал, что это так.
Самый простой исправить является:
- удалить все копии ActiveTcl, что вы получили установки, а затем
- Убедитесь, что каталог
C:\Tcl
действительно удаляется, а затем
- Установить 32-разрядная версия ActiveTcl 8.6.0.0 (которая отлично работает в системах на базе Win64, таких как 64-разрядные Windows 7 и Windows 8). Как только вы это сделали, вы получите
- Используйте
teacup update
, чтобы получить полный набор установленных пакетов, и вы должны заставить Tcom работать.
† за исключением ARM с дополнительной trickiness, который не применяется здесь.
‡ Я не собираюсь их оправдывать; это их решение, а не мое.
Вы уверены, что это сообщение об ошибке? В моей системе, запущенной 32-разрядной версией ActiveTcl 8.6, tcom.dll находится в 'c:/tcl86/lib/teapot/package/win32-ix86/lib/tcom3.9/tcom.dll', я бы ожидал аналогичная структура каталогов в вашей системе. Что вы получаете, если вы делаете 'puts stdout [package ifneeded tcom 3.9]'? В моей системе это дает два оператора tcl, разделенных точкой с запятой. Я ожидаю, что он сделает то же самое на вашем, что произойдет, когда вы выполните два заявления вручную? – nurdglaw
load C: /Tcl/lib/tcom/tcom.dll источник C: /Tcl/lib/tcom/tcom.tcl Когда я выполняю загрузку ... я получаю: не удалось загрузить библиотеку «C:/Tcl/lib /tcom/tcom.dll ": неверный аргумент – Lumpi
Спасибо, просто проверяем. – nurdglaw