интерактивная подсказка lua в приложении opengl - PullRequest
2 голосов
/ 07 мая 2010

Хорошо, поэтому, когда я запускаю lua, я получаю что-то вроде:

lua
Lua 5.1.4  Copyright (C) 1994-2008 Lua.org, PUC-Rio
> 

Теперь я хочу такую ​​подсказку, 1) в приложении с графическим интерфейсом, которое я написал.

Мое приложение с графическим интерфейсом может предоставлять такие функции, как: get_input_from_screen (); и write_this_crap_out_to_screen (); и больше функций я могу написать по мере необходимости

Я также знаю, как встроить интерпретатор lua в мой код C ++ (краткое руководство в Интернете)

Чего я не знаю ... это как соединить ввод / вывод интерпретатора lua с моим графическим интерфейсом.

Любая помощь / ссылки приветствуются.

Спасибо!

Ответы [ 3 ]

3 голосов
/ 07 мая 2010

Почему бы вам не взглянуть на исходный код автономного интерпретатора Lua (lua.c) и посмотреть, как Реоберто , и др. сделал это?

1 голос
/ 09 августа 2010

Я тоже хотел сделать что-то подобное, и просто просмотр lua.c на самом деле не «щелкнул» для меня. Только когда я где-то прочитал, что вы хотите реализовать / перезаписать функцию print () своей собственной, мне все стало понятно.

Ключ в том, чтобы написать свою собственную функцию печати в вашем приложении, которая знает, как отправлять выходные данные lua нужному компоненту - будь то виджет TextBox, игровая консоль сценариев, другой файл или что у вас есть. Тогда все, что вам нужно сделать, это зарегистрировать эту функцию печати, чтобы Луа знал об этом.

Аналогичным образом, чтобы получить lua для обработки ввода сценариев, создайте функцию, которая извлекает строку для обработки (например, текстовое поле виджета), а затем передайте эту строку чему-то вроде lual_dostring () или аналогичному. Затем настройте функцию ввода для запуска какого-либо события, например, когда пользователь нажимает клавишу ввода или когда нажата кнопка и т. Д.

Этот сайт здесь имеет очень хороший пример кода для иллюстрации.

0 голосов
/ 07 мая 2010

Логика будет выглядеть так, я полагаю.

string s = gui_read();
string result = lua_interpreter(s);
gui_print(result);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...