Пытаюсь работать с Lua из dll
вот такой код, см ниже. Функция testDS вызывается из lua, без параметров
и по идее должна возвращать датасорс, по аналогии с CreateDataSource
функция message - это аналог Lua message, выдаёт окошко с сообщением в квике
сообщения по ходу программы такие
before create datasource
pcall succeeded
after create datasource
2
ds is nil
invalid context
nil
вопрос: что означает сообщение об ошибке "invalid context" при вызове createdatasource?
что не так?
спасибо!
вот такой код, см ниже. Функция testDS вызывается из lua, без параметров
и по идее должна возвращать датасорс, по аналогии с CreateDataSource
функция message - это аналог Lua message, выдаёт окошко с сообщением в квике
сообщения по ходу программы такие
before create datasource
pcall succeeded
after create datasource
2
ds is nil
invalid context
nil
вопрос: что означает сообщение об ошибке "invalid context" при вызове createdatasource?
что не так?
спасибо!
Код |
---|
int testS(lua_State *L, LPCSTR cl, LPCSTR sec, double interval){ lua_getglobal(L, "CreateDataSource"); lua_pushstring(L, cl); lua_pushstring(L, sec); lua_pushnumber(L, interval); message(L, "before create datasource"); if (lua_pcall(L, 3, 2, 0)!=0){ message(L, "pcall unsucceeded"); message(L, lua_tostring(L, -2)); } else { message(L, "pcall succeeded"); } message(L, "after create datasource"); char x[10]; itoa(lua_gettop(L), x, 10); message(L, x); if (lua_isnil(L, -2)){ message(L, "ds is nil"); message(L, lua_tostring(L, -1)); } lua_remove(L, -1); // -2 = массив message(L, lua_typename(L, lua_type(L, -1))); message(L, lua_tostring(L, -1)); return 1; } int testDS(lua_State *L){ testS(L, "SPBFUT", "Si-6.16", 1); return 1; } |