Всем привет. Вот просмотрел все темы данной ветки.
Наверно 95% — Python, 4% — Ruby и 1% — все остальное.
Почему же все так обходят стороной LUA. Сам с ним работаю уже год и не могу сказать ничего плохого.
Или же все там настолько просто и понятно, что даже и говорить не о чем ?
Здравствуйте, R1K0, Вы писали:
RK>Поясните, пожалуйста — почему же нет вопросов
с ним пока нет проблем, о которых хотелось бы спросить..
да и проходимость этого раздела пока ещё небольшая.. даже 95% питона — это всего то с десяток топиков..
Здравствуйте, neFormal, Вы писали:
F>с ним пока нет проблем, о которых хотелось бы спросить.. F>да и проходимость этого раздела пока ещё небольшая.. даже 95% питона — это всего то с десяток топиков..
Правда?
А я вот сейчас вспомнил один момент — в свое время долго с ним бился, но так и не решил — да и сроки жали
Ситуация такая. Есть в LUA такая дополнительная библиотека Socket. Ну, думаю понятно, зачем она нужна.
Так вот проблема была в следующем.
LUA код:
package.path = ".\\?.lua;D:\\Program Files\\Lua\\5.1\\lua\\?.lua;D:\\Program Files\\Lua\\5.1\\lua\\?\\init.lua;D:\\Program Files\\Lua\\5.1\\?.lua;D:\\Program Files\\Lua\\5.1\\?\\init.lua"
package.cpath = ".\\?.dll;.\\?51.dll;D:\\Program Files\\Lua\\5.1\\?.dll;D:\\Program Files\\Lua\\5.1\\?51.dll;D:\\Program Files\\Lua\\5.1\\clibs\\?.dll;D:\\Program Files\\Lua\\5.1\\clibs\\?51.dll;D:\\Program Files\\Lua\\5.1\\loadall.dll;D:\\Program Files\\Lua\\5.1\\clibs\\loadall.dll"
function GetRequest()
local http = require("socket.http")
print("http", http)
a, b, h, g = http.request("//192.168.10.36")
return a, b, h, g
end
print(GetRequest())
Если запускать его в самом LUA, то проблем никаких — работает как и положено.
А вот если я захочу пустить его с помощью LUA C API (или же, как вариант, LUABind), то скрипт просто не работает.
Вся гадость происходит в строчке
Здравствуйте, R1K0, Вы писали:
RK>Сталкивался кто-нибудь с таким или же... ??
сишный код в студию. явно со стеком чтото напутал. в конце концов там все в сырцах, поставь брикпоин в Socket и смотри
Здравствуйте, R1K0, Вы писали:
RK>Поясните, пожалуйста — почему же нет вопросов
Работал с питоном и луа, с луа никогда проблем никаких небыло, только въехать в синтаксис и все
а кому нужна луашка но "под С++" — рекомендую squirrel, тоже используем, тоже клево
Здравствуйте, IPv6, Вы писали:
IP>Здравствуйте, R1K0, Вы писали:
RK>>Сталкивался кто-нибудь с таким или же... ?? IP> сишный код в студию. явно со стеком чтото напутал. в конце концов там все в сырцах, поставь брикпоин в Socket и смотри
Собственно вот. На чистом C API простейший вариант:
Какие только комбинации не пробовал — пусто
Смысл её насколько помню (делал несколько месяцев назад, а сейчас только через LUABind работаю) означает, что я жду, что мне вернуть первый из списка return данной LUA-функции.
Проблема в том, что вы не совсем понимаете, что такое loadfile/luaL_loadfile — файл компилируется и превращается в функцию, лежащую на вершине стека. Дальше вы можете ее вызвать, в том числе, передав аргументы и.т.д.
Если вам просто нужно выполнить что-то лежащее в файле — используте dofile/luaL_dofile. luaL_dofile — это элементарный макрос: