С Новым годом! Форум программистов, компьютерный форум, киберфорум
Lua
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
96 / 1 / 0
Регистрация: 04.10.2022
Сообщений: 41

Создание нового Луа стека

12.10.2022, 19:01. Показов 630. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Позвольте вопрос:

Есть такой простой код:

В квике Lua-скрипт:


C
1
2
3
4
5
6
7
8
9
10
11
12
function main()
 
Quik_Lua_connector= require("Quik_Lua_connector")    
 
Quik_Lua_connector.run_Cpp() 
 
-------------------------
while not stopped do 
sleep(1)
end 
-------------------------
end

В С++ соответственно:

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
static int run_Cpp(lua_State* Lua_stek)
{
 
    lua_State* L = luaL_newstate();
 
    if (L == NULL)
    {
        std::cout << "L == NULL" << std::endl;    //Ошибки нет.
    }
 
lua_getglobal(L, "CreateDataSource");           
 
lua_pushstring(L, "TQBR");    
lua_pushstring(L, "GAZP");         
lua_pushnumber(L, "INTERVAL_MN1");                
 
std::cout << "Size_stack:" << lua_gettop(L) << std::endl;   //Размер 4 - как и должно быть
 
int status_lua_pcall = lua_pcall(L, 3, 2, 0);   
    
if(status_lua_pcall  != 0)
{
std::cout<<"Error"<<std::endl;   //attempt to call a nil value
}
 
}
То есть я из квика через Lua-скрипт запускаю .dll и функцию run_Cpp в ней.

Из С++ я вызываю Lua функцию реализованную в квике, НО я хочу использовать не автоматически созданный при вызове функции run_Cpp - Lua стек, а создать свой новый - через luaL_newstate.

-Стек создается, он не равен нулю.
-В стек добавляются элементы - то есть он рабочий.

Но, как я вызываю lua_pcall - то lua_pcall завершается ошибкой "attempt to call a nil value".

Со автоматически созданный стеком Lua_stek - никаких ошибок нет, все работает.

Почему так получается ?
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
12.10.2022, 19:01
Ответы с готовыми решениями:

Начало с луа
здравствуйте, появилась необходимость быть в теме луа, с ресурса: http://www.lua.org/download.html - Lua 5.4.4, сегодня 7 августа 2022...

Работа с вебсокетами в луа в windows
Всех приветствую, ребята помогите по вопросу: Вообщем встала необходимость получать для своего скрипта с некоторых сайтов инфу по wss:// ...

Переделать lua луа индикатор
Помогите переделать луа индикатор. Слишком он сложно написан. А моих знаний хватает на работу с простыми функциями и таблицами. Надо...

1
Диванный эксперт
Эксперт С++
 Аватар для Max Dark
2550 / 2064 / 971
Регистрация: 09.10.2013
Сообщений: 4,793
Записей в блоге: 4
12.10.2022, 22:18
Лучший ответ Сообщение было отмечено Lunar_ как решение

Решение

Цитата Сообщение от Lunar_ Посмотреть сообщение
Почему так получается ?
luaL_newstate по сути создает новую VM, которая ничего не знает о состоянии других.

То есть в ней нет тех функций и переменных, которые вы определили в другом инстансе.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
12.10.2022, 22:18
Помогаю со студенческими работами здесь

Дайте ссылку на mysql для луа
Нужна ссылка на библиотеку mysql для луа, просто эксперементирую

Реализация стека целых чисел. Процедура добавления нового элемента, удаление, вывод стека
Попросили написать программку, но, паскаль очень давно не практикую, поэтому прошу тут: Надо написать программу реализации стека целых...

Назначение нового основания стека в текущем сегменте стековой памяти
Нужна помощь в написании программы: Составить программу на ассемблере, которая содержит следующую последовательность действий: —...

Поменять местами крайние элементы стека и предусмотреть добавление нового элемента в конец очереди
Здравствуйте!Очень срочно,нужно создать программу с динамической структурой СТЕК и предусмотреть добавление нового элемента в конец...

Дан указатель Р1 на вершину непустого стека. Создать два новых стека, переместив в первый из них все элементы исходного стека с четными значениями, а
Помогите срочно составить задачу: Дан указатель Р1 на вершину непустого стека. Создать два новых стека, переместив в первый из них все...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Модель микоризы: классовый агентный подход 3
anaschu 06.01.2026
aa0a7f55b50dd51c5ec569d2d10c54f6/ O1rJuneU_ls https:/ / vkvideo. ru/ video-115721503_456239114
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR
ФедосеевПавел 06.01.2026
Owen Logic: О недопустимости использования связки «аналоговый ПИД» + RegKZR ВВЕДЕНИЕ Введу сокращения: аналоговый ПИД — ПИД регулятор с управляющим выходом в виде числа в диапазоне от 0% до. . .
Модель микоризы: классовый агентный подход 2
anaschu 06.01.2026
репозиторий https:/ / github. com/ shumilovas/ fungi ветка по-частям. коммит Create переделка под биомассу. txt вход sc, но sm считается внутри мицелия. кстати, обьем тоже должен там считаться. . . .
Расчёт токов в цепи постоянного тока
igorrr37 05.01.2026
/ * Дана цепь постоянного тока с сопротивлениями и напряжениями. Надо найти токи в ветвях. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа и решает её. Последовательность действий:. . .
Новый CodeBlocs. Версия 25.03
palva 04.01.2026
Оказывается, недавно вышла новая версия CodeBlocks за номером 25. 03. Когда-то давно я возился с только что вышедшей тогда версией 20. 03. С тех пор я давно снёс всё с компьютера и забыл. Теперь. . .
Модель микоризы: классовый агентный подход
anaschu 02.01.2026
Раньше это было два гриба и бактерия. Теперь три гриба, растение. И на уровне агентов добавится между грибами или бактериями взаимодействий. До того я пробовал подход через многомерные массивы,. . .
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост.
Programma_Boinc 28.12.2025
Советы по крайней бережливости. Внимание, это ОЧЕНЬ длинный пост. Налог на собак: https:/ / **********/ gallery/ V06K53e Финансовый отчет в Excel: https:/ / **********/ gallery/ bKBkQFf Пост отсюда. . .
Кто-нибудь знает, где можно бесплатно получить настольный компьютер или ноутбук? США.
Programma_Boinc 26.12.2025
Нашел на реддите интересную статью под названием Anyone know where to get a free Desktop or Laptop? Ниже её машинный перевод. После долгих разбирательств я наконец-то вернула себе. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru