Как передать целочисленное значение из файла .cc в файл .tcl при использовании ns2?

Я считаю пакеты, используя переменную в файле .cc. Теперь я хочу получить это значение в своем .tcl-скрипте, сохранить его в какой-то переменной и выполнить над ним какую-то операцию? Как это возможно?


person Developer    schedule 18.05.2016    source источник


Ответы (1)


Есть несколько вариантов, в зависимости от того, как вы сделали привязку между своим кодом и Tcl. Например, вы можете использовать Tcl_NewIntObj() для преобразования вашего значения в значение Tcl, которое вы можете передать в качестве аргумента команде Tcl, или вы можете использовать Tcl_LinkVar(), чтобы сделать переменную в вашем коде C++ (которая должна быть долгоживущей, поэтому часто глобальная) выставлять себя как переменную Tcl.

// The interp is the interpreter context, which might come from Tcl_CreateInterp or might
// be handed to you by callback, depending on what you're doing.

Tcl_LinkVar(interp, "myVarName", (char *) &yourIntVariable, TCL_LINK_INT);

Как только вы это сделаете, чтение переменной myVarName на стороне Tcl будет считываться из вашей переменной до тех пор, пока вы Tcl_UnlinkVar() не разорвете связь.

person Donal Fellows    schedule 18.05.2016
comment
Tcl_NewIntObj больше подходит, если вы собираетесь передать значение в качестве аргумента или напрямую записать его в переменную Tcl. - person Donal Fellows; 18.05.2016