00:57

Жизнь слишком коротка, чтобы лечить себя от себя / Just born to find my sampled piece of mind
Такая вот банальная казалось бы задача.
Дано.
Suse 10, g++, tcl.h
Задача - создать нескольким функциям в модуле на С++ графический интерфейс с использованием Tcl\Tk.
Указанная библиотека - инклудится, в коде создается среда выполнения скрипта через Tcl_CreateInterp(), в скрипте простейшие команды на Tcl, все это компилируется, запускается и даже может со мной поздороваться (Hello world еще никто не отменял).
А дальше начинается собственно проблема.
При попытке оформления собственно gui - т.е. включении в скрипт команд tk, все это даже компилируется, однако Tcl_Eval() начинает возвращаться с ошибкой. Мол не знаем мы таких команд как хоть тот же "toplevel" и все тут.
Ну.. вопрос - что и где может быть не так?..

Мое подозрение что ошибка в скрипте возникает потому, что создаваемый интерпретатор он как tclsh - т.е. знает как раз только команды tcl. Во всяком случае та же последовательность команд в tclsh из консоли вызывает ошибку, а из wish - все правильно выполняется. Но как это втащить в программу на С тогда?

Комментарии
11.09.2009 в 15:07

насколько помню виш - это тцл с графическими либами. так что он тащемто правильно ругается.
так что советую повнимательней почитать маны к сишному API на предмет такого вот поворота возможно там надо выставлять какие-то флаги или чуть подругому инициировать библиотеку.

ну или альтернативный вариант - втащить функционал программы SWIGом в тцл (%
но это явно не совсем то. точнее совсем нето.