我正在为我的程序使用 TCL-C API。
我阅读并创建了类似于这个C++ 示例的测试程序。
但我对这个例子有疑问。当我在 shell 中使用这个示例时(通过使用 load example.o 加载它),每个输入都会自动调用 API 的解释器并运行与输入字符串相关的命令。
但是假设我希望输入将调用我需要的包内的 tcl 过程,该过程将检查参数并打印另一条消息,并且只有在此之后才会调用 TCL-C API 相关函数(一种包装器),在这种情况下,我该怎么做?
我在某处读到该符号@
是应该用于调用外部程序的符号,但我找不到它在哪里。
我将举一个小例子让事情更清楚。
somepackage.tcl
proc dosomething { arg1 , arg2 , arg3 } {
# check args here #
set temp [ #invoke here TCL-C API function and set it's result in temp ]
return $temp
}
package provide ::somepackage 1.0
测试.tcl
package require ::somepackage 1.0
load somefile.o # this is the object file which implements TCL-C API commands [doSomething 1 2 3 ]
...