我有一个库,并且使用swig为相同的库生成了tcl绑定。如果我的原始lib dll是xyz.dll,则生成的dll是xyz_tcl.dll。但是,当我尝试加载dll时,它显示“无效的命令名称“ MZ””。有人能告诉我原因吗?
最佳答案
MZ
几乎可以肯定是DLL的前几个字节(这是文件格式的“魔术数”),因此您可能正在尝试做一个猜测:
source xyz_tcl.dll
那行不通。它包含与Tcl集成的已编译C代码,但不包含Tcl脚本。相反,您需要执行以下操作:
load xyz_tcl.dll
当然,应该将其构建到一个包中(该包是一个包含所需DLL和文件
pkgIndex.tcl
的目录),然后您可以执行以下操作:package require xyz
(
pkgIndex.tcl
文件包含有关如何使用其他文件(必要时通过load
和source
定义软件包)的说明。)