//提供给lua的变量注册接口 int myvar_register(lua_State* L) { const char *id = luaL_checkstring(L,1); double defaultval = luaL_checknumber(L,2); bool persist = luaL_checknumber(L,3); double *p = (double*)malloc(sizeof(double)); *p = defaultval; //产生内存变量 struct varDouble t; double val= 0; //id是str t.id = id; t.p = p; //persist false普通变量 true 保持变量 if(persist != 0) { //在sql中查找是否有变量,如果没有则产生条目,否者将变量值读入到内存变量 if(mydb.GetValue(id,val)) { *p = val; t.sqlval = val; } else { //printf("newval\n"); mydb.NewId(id,*p,""); t.sqlval = *p; } } else { t.sqlval = *p; } //内存列表 varLuavarlist.append(t); lua_pushnumber(L,*p); return 1; }
void var_register(const QString& id,double* p,bool persist) { //产生内存变量 struct varDouble t; double val= 0; //id是str t.id = id; t.p = p; //persist false普通变量 true 保持变量 if(persist) { //在sql中查找是否有变量,如果没有则产生条目,否者将变量值读入到内存变量 if(mydb.GetValue(id,val)) { *p = val; t.sqlval = val; } else { printf("newval\n"); mydb.NewId(id,*p,""); t.sqlval = *p; } } else { t.sqlval = *p; } //内存列表 varDoublelist.append(t); }