Название: [РЕШЕНО] QScriptEngine::evaluate(). Эквивалент __LINE__ в контексте скрипта Отправлено: lesav от Октябрь 18, 2012, 10:00 Существуют ли аналоги макросов __LINE__ __FUNC__ доступные в контексте скрипта?
[РЕШЕНО] решение здесь (http://www.prog.org.ru/index.php?topic=23305.msg169386#msg169386) Название: Re: QScriptEngine::evaluate(). Эквивалент __LINE__ в контексте скрипта Отправлено: lesav от Октябрь 18, 2012, 13:03 Странно, никому не нужно было отлавливать эксепшены в скриптах ?
Может и мне оно не надо ? Название: Re: QScriptEngine::evaluate(). Эквивалент __LINE__ в контексте скрипта Отправлено: Igors от Октябрь 18, 2012, 13:27 Странно, никому не нужно было отлавливать эксепшены в скриптах ? Это может интересно, но непонятно - о каком "скрипте" идет речь? Я знаю что __LINE__ печатает текущую строку, но мне это никогда не было нужно. Также хз что за эксепшн и чего это он в скрипте ???. В общем, адаптируйте пост "для широкого круга", а то сейчас как с MSDN - неясно это С++ или Васька или что-то еще :) Может и мне оно не надо ? Название: Re: QScriptEngine::evaluate(). Эквивалент __LINE__ в контексте скрипта Отправлено: lesav от Октябрь 18, 2012, 18:50 Стандартный подход:
создать QScriptEngine отобразить некие объекты в скрипт (они доступны в теле скрипта) выполнить Код
В скрипте происходит следующее: Код
Из js выполняется метод Q_INVOKABLE void qtMyObject::appendLog(Qstring, int) Вот я и спрашиваю, существует ли "Эквивалент Си-шного макроса __LINE__ в контексте скрипта"? Название: Re: QScriptEngine::evaluate(). Эквивалент __LINE__ в контексте скрипта Отправлено: Igors от Октябрь 19, 2012, 07:14 Ну вот, теперь ясно. Правда поддержать разговор я не могу (с этими скриптами никогда не работал), ну ничего, с интересом послушаю
Название: Re: QScriptEngine::evaluate(). Эквивалент __LINE__ в контексте скрипта Отправлено: lesav от Декабрь 31, 2012, 12:22 __LINE__ эквивалента в JS нет.
Но исполнитель скрипта всегда знает какую он сейчас выполняет функцию скрипта и на каком номере строки он сейчас находиться. При вызове функции логирования в JS вызывается Q_INVOKABLE функция в C++, в которой уже можно посмотреть в какой функции и номере строки сейчас был вызов. Код: QScriptEngine *m_pScriptEngine; |