Пытаюсь работать с 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;
}
|