我尝试过(在Windows上运行Tcl和Tk 8.6.0):
load D:/toot/bar/em.dll
load "D:/toot/bar/em.dll"
load D://toot//bar//em.dll
load "D://toot//bar//em.dll"
load D:\toot\bar\em.dll
load "D:\toot\bar\em.dll"
load D:\\toot\\bar\\em.dll
load "D:\\toot\\bar\\em.dll"
所有这些都会返回以下两个错误之一:
无法加载库[我在'加载后'放置的内容]:无效参数
无法加载库[我在'加载'之后放置,渲染]:在库路径中找不到此库或从属库
答案 0 :(得分:0)
假设file exists D:/toot/bar/em.dll
返回true a ,load D:/toot/bar/em.dll
应该有效。但是,听起来你已经遇到了库依赖的东西(即其他DLL)的问题。
这是Windows上的一般问题asked elsewhere on Stack Overflow;答案与这个问题有关。您还应该知道,如果DLL已经链接到特定版本的Tcl DLL(在Windows上推荐不用于Tcl扩展),那么您需要安装相同版本的Tcl联系在一起。启用Stub的扩展根本没有这个问题(尽管它们仍然可能遇到其他所需库不存在的问题)。
遗憾的是load
命令没有告诉你错误消息中缺少什么DLL,但是IIRC底层OS API也没有报告它。你很难使用外部工具来诊断这些东西......
a 不要担心反斜杠/正斜杠问题; Tcl为你处理这些。
答案 1 :(得分:0)
我也有这个问题,无法加载库" ChariotExt":无效的参数。
通过将tcl版本x64更改为x86来解决它。