26 (2022-10-04 20:53:04 отредактировано swerg)

Re: Передать таблицу из Lua в С++

Serg_ пишет:

Как из этого кода Вы поняли что у Вас работает ??? Я не вижу вывода на консоль

Посмотрите мой Lua-код.
Я в Message() вывожу то, что мне вернула DLL-библиотека.

Serg_ пишет:

Подскажите пожалуйста версию quik и версию Lua - на который Вы это запустили ?

QUIK 8.8.4 под рукой оказался. Там Lua5.3

27 (2022-10-04 21:15:35 отредактировано Serg_)

Re: Передать таблицу из Lua в С++

swerg пишет:
Serg_ пишет:

И нифига это не работает,

Отлично работает.
Удивился что никак не получается, потратил время, собрал все это у себя.

С++ код в dll у меня такой:

static int forLua_TestDataSource(lua_State *L) {
    lua_getfield(L, -1, "Size");
    lua_pushvalue(L, -2); 
    if (lua_pcall(L, 1, 1, 0) == 0)
        lua_pushinteger(L, lua_tointeger(L, -1));
    else
        lua_pushstring(L, "ERROR pcall");

    return 1;
}

Вызывающий Lua-код:

dll = require("luacdll")

function main()
    local my_table_, err = CreateDataSource("TQBR", "MSNG", INTERVAL_M1)
    message("Res=" .. tostring(dll.TestDataSource(my_table_)))
end

Выводит:

Res=1

Да, у меня как раз одна свеча по указанному инструменту.
Если указать несуществующий инструмент - выводит Res=0

Так что всё работает. И вроде от приведенного вами кода в сообщении #21 не отличается. Ищите ошибку в сборке.

Как вариант - вы запускаете Lua-скрипт в квике не на той версии Lua, с какой собираете свою библиотеку. Или еще что-то не так, не знаю.

Вот мой результат на Ваш код:

https://dropmefiles.com/ttbsX


Я же говорю - это криворкуие разрабы квика, у которых руки из одного места растут.