Я использую TCL-C API для своей программы.
и я прочитал и создал тестовую программу, которая похожа на этот C ++ пример .
Но у меня проблема с этим примером. когда я использую этот пример в оболочке (загружая его с помощью load example.o), каждый ввод автоматически вызывает интерпретатор API и запускает команду, связанную со строкой ввода.
Но предположим, что я хочу, чтобы ввод вызывал процедуру tcl, которая находится внутри требуемого мной пакета, эта процедура проверит параметры и напечатает другое сообщение, и только после этого вызовет функцию, связанную с API TCL-C (вид оболочки), В таком случае как я могу это сделать?
Я где-то читал, что символ @
- это символ, который должен использоваться для вызова внешней программы, но я просто не могу найти, где он был.
Я приведу небольшой пример, чтобы прояснить ситуацию.
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
test.tcl
package require ::somepackage 1.0
load somefile.o # this is the object file which implements TCL-C API commands [doSomething 1 2 3 ]
...