Я использую Tcl 8.6 (Windows) и не могу зарегистрироваться и использовать новые каналы
std::ofstream file("1.txt");
Tcl_Channel kanal = Tcl_CreateChannel(Type, "myChann", file, TCL_WRITABLE);
Tcl_RegisterChannel(interp, kanal);
file.close();
и тип
Tcl_ChannelType* Type = new Tcl_ChannelType();
Type->closeProc = closeProc;
Type->inputProc = inputProc;
Type->outputProc = outputProc;
Type->typeName = "My own chann";
Type->version = TCL_CHANNEL_VERSION_2;
функции просты, у них есть только std::cout
я запускаю интерпретатор со скриптом
"chan puts myChan whatever"
и ничего не произошло, ни ошибок интерпретатора, ни вывода (консоль, файл). я не знаю, как это укусить, это первая цель, создать новый канал и использовать его, вторая - заменить TCL_STDOUT моим собственным каналом (это может быть std::ofstream), чтобы когда я запускаю интерпретатор с
"puts WhatEver"
эта строка переходит в std::ofstream