如何创建一个tcl文件的DLL

时间:2012-09-11 09:37:54

标签: tcl

1)我想创建一个下面的tcl示例代码的dll文件,这样做时我遇到了很多麻烦。我正在使用linux(ubuntu 10.04)机器。该文件的名称是clock.tcl。我见过很多网站,但我无法完成确切的流程。

2)我也在使用linux上的确切命令来创建一个tcl代码的dll文件

我是tcl的新手并且也创建了dll。任何人都可以帮助我解决这个问题。请尽快帮助我。

clock.tcl

#!/usr/bin/env tclsh8.5

package require Tk

namespace eval ::sd {
set time0 0
set value 0
set h_outfile "i"
}

proc every {ms body} {eval $body; after $ms [info level 0]}


proc time_ms { } {

set m [clock milliseconds]
puts " in time_ms time is $m"
set m  [format %2.2d:%2.2d:%2.2d.%2.2d \
[expr {$m/3600000}] [expr {$m/60000}] [expr {($m/1000)%60}] [expr {$m%1000}]]

incr ::sd::value
set ::sd::time0 $m
puts $::sd::h_outfile " \t $::sd::time0 \t $::sd::value \n"
}

proc open_log { } {
set ::sd::h_outfile [open "output.txt" "w"]
puts " file is $::sd::h_outfile"
puts $::sd::h_outfile " \t hr::mm::ss::ms \t temperature in celcius \n"
}


if {$argc < 1} {

open_log
every 100 {
time_ms
}
}

2 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

很少将Tcl代码构建到共享库中(正式地说,DLL只是Windows上的共享库格式;其他平台具有概念等效,但命名方式不同)但可以完成。它的完成方式 - 嗯,可能是最简单的,但也可能有其他方式 - 是建立一个StarDLL。这包括共享库中的Tcl / Tk运行时,以及保存Tcl代码的小型虚拟文件系统。在Pat Thoyts的页面上有building a StarDLL的进一步说明,但它似乎仍然不适合初学者。

我怀疑这是否是你真正需要的。将您从其他地方调用的程序作为外部流程制作起来要容易得多,并且打包为StarPack的工具更加成熟。