2010-04-15 5 views
1

Есть ли способ сделать это? Кажется, единственный возможный способ сделать это - использовать ruby ​​/ tk и создать интерпретатор tcl через этот api. Тем не менее, я бы хотел использовать это в системе без GUI (x windows). Я из вариантов?Вложение tcl в ruby ​​

Благодаря

+0

Tkinter от Python позволяет пользователю создать экземпляр интерпретатора Tcl, который не загружает Tk (параметр 'useTk' для конструктора' Tk'). Может быть, оболочка Ruby тоже? –

+1

Зачем вам вставлять его и просто не выкладывать? Вы посмотрели http://rubyconf2008.confreaks.com/tcl-for-rubyists.html? –

ответ

0

если вы в командной строке вы можете раскошеливаться tclsh. tcl также имеет C api, поэтому вы можете использовать его для вставки tcl в ruby, если уже не существует существующего способа?

3

Если вы можете вызвать произвольные простые функции в C API TCL, ключевыми из которых являются:

  • Tcl_FindExecutable - Назовем это первым, чтобы инициализировать библиотеку
  • Tcl_CreateInterp - Это возвращает дескриптор нового контекста исполнения
  • Tcl_Eval - оценивает скрипт; возвращает константу TCL_OK (0) или TCL_ERROR (1) (или несколько других, которые являются редкими в общем коде)
  • Tcl_GetResult - Это возвращает значение результата (или сообщение об ошибке)
  • Tcl_ResetResult - Очищает значение результата
  • Tcl_DeleteInterp - может быть, вы можете догадаться, что это делает ...

вы также можете получить доступ к «глобальные» переменные в контексте с Tcl_GetVar и Tcl_SetVar; это очень удобный способ передать значения, которые могут быть недействительными скриптами.

+0

Есть ли способ указать путь к интерпретатору tcl? – Jordan

+0

С 'mkmf.rb' вам понадобится' have_library' или 'find_library'. Я не очень хороший программист Ruby, чтобы рассказать вам, как хорошо использовать этот API. –

Смежные вопросы