Я считаю пакеты, используя переменную в файле .cc. Теперь я хочу получить это значение в своем .tcl-скрипте, сохранить его в какой-то переменной и выполнить над ним какую-то операцию? Как это возможно?
Как передать целочисленное значение из файла .cc в файл .tcl при использовании ns2?
Ответы (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
Tcl_NewIntObj
больше подходит, если вы собираетесь передать значение в качестве аргумента или напрямую записать его в переменную Tcl.
- person Donal Fellows; 18.05.2016