1

我有一个用 tcl 编写的脚本,它加载一个 dll 文件。我想在 python 中加载这个文件。我不确定 dll 文件是否是用 tcl 编写的,但是因为 tcl 文件导入它我认为它是用 tcl 编写的。我曾尝试使用 WinDLL("path_to_dll") 但我知道没有提供名称的模块。

4

2 回答 2

2

最简单的方法是在 Python 进程中使用 Tkinter 包及其内置的 Tcl 解释器。

如果它是一个 Tcl 扩展 dll,那么在没有太多设置的情况下从 Python 调用它是没有意义的。

于 2012-10-05T21:59:14.683 回答
1

Python 和 Tcl 有本质上不同的 C API;完全没有理由期望为其中一个编写的二进制库可以与另一个一起使用。有可能编写一个库来使用它加载到的任何库的 API——从 Tcl 的角度来看,这将涉及链接到 Tcl 存根库,这样就不会对 API 进行讨厌的硬绑定——但我没有不知道如何在 Python 方面做到这一点,这绝对是非常棘手的事情。更实际的做法是拥有一个包含与语言无关的实现的库,然后再拥有两个将该 API 绑定到特定语言的库(绑定层甚至可以使用 SWIG 之类的工具自动生成,尽管这不能解决语言阻抗问题问题)。

当然,如果您只是想用一种语言编写库并从另一种语言使用它,您可以这样做。毕竟,库只是磁盘上的字节。不过,让专业工具(编译器、链接器)负责编写库通常会更容易;库的数据格式并不是最简单的东西!

于 2012-10-06T08:07:02.260 回答