1

dllファイルをロードするtclで書かれたスクリプトがあります。このファイルを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のCAPIは大幅に異なります。一方のために書かれたバイナリライブラリがもう一方のために動作することを期待する理由はまったくありません。ロードされたライブラリのAPIを使用するライブラリを作成することは可能かもしれません— Tclの観点からは、これにはTclスタブライブラリに対するリンクが含まれるため、APIへの厄介なハードバインディングはありません—しかし私はしませんPython側でそれを行う方法を知っているので、それを試みるのは間違いなく非常に難しいことです。より実用的なのは、言語に依存しない実装を含む1つのライブラリと、そのAPIを特定の言語にバインドする2つのライブラリを用意することです(バインディングレイヤーは、言語のインピーダンスに対応していませんが、SWIGなどのツールを使用して自動的に生成することもできます)問題)。

もちろん、ある言語からライブラリを作成し、別の言語からライブラリを使用したいだけの場合は、それを行うことができます。結局のところ、ライブラリはディスク上の単なるバイトです。ただし、通常は、専門のツール(コンパイラ、リンカ)にライブラリの作成を任せる方が簡単な傾向があります。ライブラリのデータ形式は、これまでで最も単純なものではありません。

于 2012-10-06T08:07:02.260 に答える