2017-11-22 21 views
1

FREEWRAP.EXEを使用してtclファイルをexeファイルに変換しようとしました。 ほとんどのファイルで動作しますが、常に失敗するコード "load TLTcl.dll"の行を含むファイルが1つあります。tclファイルをexeファイルに変換するエラー

私はactivetclでtclファイルを実行すると問題ありませんでした。 tclファイルをexeファイルに変換して、同じフォルダにTLTcl.dllを置くので、exeは実行中に常にクラッシュします。

tclをexeにすると、tclファイルにdllファイルをロードする方法が不思議です。 ありがとう!

puts "Starting FLASH script" 
puts "FLASH write will be performed now, make sure you have an extra flash... " 
#load 10 lira tcl DLL 
load TLTcl.dll 

答えて

0

TLTcl.dllが、それは(おそらく名前にバージョン番号で)実際のtcl.dllにリンクしてfreewrapはそれを使用していないことを意味スタブのサポート、で構築されていなかったようですね。静的にリンクされたビルドを使用して、システム全体を単純再配布可能なファイルにすることができます。

スタブサポートを有効にしてTLTcl.dllを再構築する必要があります(Tcl拡張を実装するDLLと仮定します)。すべてのファイルをコンパイルするときにはプリプロセッサ記号USE_TCL_STUBSを定義し、スタティックライブラリのtclstubにリンクするのは問題ではありません。おそらくバージョン番号がファイル名に埋め込まれています(コンパイルするTclヘッダのバージョンとでリンクするスタブライブラリはと一致する必要があります)。 TclのAPIのプロパティは、Tcl 8.5のスタブ付きAPIに対してビルドすると、Tcl 8.6インタプリタにロードできるということに注意してください。 (確かに、前方互換性のレベルが約8.0.6 &短剣からあり;から8.7に、あなたはまだそれを使用しないので、アクティブまだ開発中である)


&短剣;これは、いくつかの商用パートナーにのみリリースされたバージョンです。他の誰もが新しいを使用して、バージョンをサポートしました。

関連する問題