从TCL脚本使用TCOM时参数无效。 ActiveTcl

时间:2013-05-30 14:36:44

标签: tcl activestate

我使用ActiveStates TCL版本8.6.0.0 for Windows x64。 在我打电话的脚本中:

package require tcom

Tcom包含在安装中但我收到以下错误:

couldn't load libary "C:/TCL/lib/tcom/tcom.dll": Invalid argument while executing
"load C:/TCL/lib/tcom/tcom.dll"
("package ifneeded tcom 3.9" script)
invoked from within
"package require tcom"

有谁知道什么是实际遗失的? C:/TCL/lib/tcom/tcom.dll安装在我的系统上,那么什么是“无效参数”?

1 个答案:

答案 0 :(得分:3)

这似乎是一个32位/ 64位问题。您不能在同一个进程中混合使用不同的位大小,并且您可能已经安装了64位版本的ActiveTcl 8.6.0.0,认为它与构建的大小和系统相匹配建筑是个好主意。唉,事实并非如此。用于64位Windows的ActiveTcl 8.6.0.0由于商业原因,需要额外的产品密钥才能访问其64位版本的外部软件包。但是你已经安装了软件包(可能是以前安装的ActiveTcl?),看起来是32位版本。

使用错误大小的二进制库构建的误导性错误是不幸的(一个相对较小的错误源于Windows和POSIX之间的微妙差异以及Tcl如何处理两者之间的映射)但我敢打赌就是这样。 / p>

最简单的解决方法是:

  1. 卸载已安装的所有ActiveTcl副本,然后
  2. 确保您的C:\Tcl目录确实已删除,然后
  3. 安装ActiveTcl 8.6.0.0的 32位版本(在64位Windows 7和Windows 8等基于Win64的系统上可以正常工作)。一旦你完成了,你
  4. 使用teacup update安装完整的软件包,您应该让Tcom正常工作。

  5. 除了具有额外技巧的ARM之外,这里不适用。
    我不打算为他们辩护;这是他们的决定,而不是我的决定。