Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何创建tcl文件的dll_Tcl - Fatal编程技术网

如何创建tcl文件的dll

如何创建tcl文件的dll,tcl,Tcl,1) 我想创建一个包含以下tcl示例代码的dll文件,在这样做的过程中,我遇到了很多麻烦。我在linux(Ubuntu10.04)机器上工作。文件名为clock.tcl。我看过很多网站,但我不能得到确切的过程遵循 2) 我还在努力使用linux上的确切命令来创建tcl代码的dll文件 我是tcl新手,也不熟悉创建dll。有人能帮我解决这个问题吗。请尽快帮助我 clock.tcl #!/usr/bin/env tclsh8.5 package require Tk namespace eval

1) 我想创建一个包含以下tcl示例代码的dll文件,在这样做的过程中,我遇到了很多麻烦。我在linux(Ubuntu10.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
}
}
#/usr/bin/env tclsh8.5
包装需要Tk
命名空间eval::sd{
设置时间0
设置值0
设置h_输出文件“i”
}
proc every{ms body}{eval$body;在$ms[info level 0]之后]
过程时间{}{
设置m[时钟毫秒]
将“及时的时间是$m”
设置m[格式%2.2d:%2.2d:%2.2d.%2.2d\
[expr{$m/3600000}][expr{$m/60000}][expr{$m/1000)%60}][expr{$m%1000}]
增量::sd::值
set::sd::time0$m
将$::sd::h_输出文件“\t$::sd::time0\t$::sd::value\n”
}
proc open_log{}{
set::sd::h_输出文件[打开“output.txt”“w”]
放入“文件为$::sd::h_输出文件”
将$::sd::h_输出文件“\t hr::mm::ss::ms\t celcius中的温度\n”
}
如果{$argc<1}{
打开日志
每100{
时间
}
}

请参见

将Tcl代码构建到共享库中是很少见的(从形式上讲,DLL只是Windows上的共享库格式;其他平台具有相同的概念,但名称不同),但这是可以做到的。这样做的方式——很好,可能是最简单的,但也可能有其他方式——是构建一个。这包括一个共享库中的Tcl/Tk运行时,以及一个保存Tcl代码的小型虚拟文件系统。Pat Thoyts的页面上有进一步的说明,但初学者似乎仍然无法完成


我怀疑这是否是你真正需要的。制作一个从其他地方调用的程序作为外部进程要容易得多,而且打包为外部进程的工具也相当成熟。

首先,感谢您的回复。但是我正在使用Ubuntu10.04开发linux machnie,上面的链接告诉我如何使用visual studio在windows上创建dll等等。不能在linux机器上创建tcl代码的dll文件吗??如果可能的话,我想得到关于如何做的帮助??你认为你说“dll”是什么意思?这是windows环境特有的一种文件类型,但是您说您希望在linux机器上执行此操作。您是否试图以某种方式交叉编译代码?你希望如何使用这个“dll”?我相信我们可以做一些接近你想要的事情,但是有些部分非常复杂(需要足够的键入来描述),我们需要确切地知道一旦你有了这段二进制代码,你打算做什么。这样,我们就可以为你指出正确的方向,而不是给你提供一些令人困惑的接近但不正确的东西。还有一些和它们做类似的事情,但我个人对它们没有经验。