使用“require”,我想链接一个代表基类的lua文件。
lua_class1.lua(基类)
class 'lua_testclass'
function lua_testclass:__init()
self.name = name
end
function lua_testclass:f(Value)
Value[1] = 10000
end
“lua_test1.lua(派生类)”
require "lua_class1"
class 'lua_testclass_wrapper' (lua_testclass)
function lua_testclass_wrapper:__init()
lua_testclass.__init(self, name)
end
function lua_testclass_wrapper:f(Value)
lua_testclass.f(self, Value)
end
a = lua_testclass('example')
b = lua_testclass_wrapper('example')
cpp文件引用全局对象“a”和“a”对象调用“f”成员函数。但是,该程序异常终止。
luaL_dofile(pLS, "lua_test1.lua");
object objParam = newtable(pLS);
object obja = globals(pLS)["a"];
objParam[1] = 10;
call_member<void>(obja, "f", objParam);
int nParam = object_cast<int>(objParam[1]);
顺便说一句,以下是好的..
class 'lua_testclass'
function lua_testclass:__init()
self.name = name
end
function lua_testclass:f(Value)
Value[1] = 10000
end
class 'lua_testclass_wrapper' (lua_testclass)
function lua_testclass_wrapper:__init()
lua_testclass.__init(self, name)
end
function lua_testclass_wrapper:f(Value)
lua_testclass.f(self, Value)
end
a = lua_testclass('example')
b = lua_testclass_wrapper('example')
我试过这种方式,但失败了。
Mod = require "lua_class1"
class 'lua_testclass_wrapper' (Mod.lua_testclass)
function lua_testclass_wrapper:__init()
Mod.lua_testclass.__init(self, name)
end
function lua_testclass_wrapper:f(Value)
Mod.lua_testclass.f(self, Value)
end
有好办法吗?
感谢。
答案 0 :(得分:0)
我在很多方面测试了这个案例。我包括了基类lua文件(“lua_class1.lua”)。 然后,它工作得很好。 我想知道这个来源是如何工作的。
luaL_dofile(pLS, "lua_class1.lua"); //include base class file
luaL_dofile(pLS, "lua_test1.lua");
object objParam = newtable(pLS);
object obja = globals(pLS)["a"];
objParam[1] = 10;
call_member<void>(obja, "f", objParam);
int nParam = object_cast<int>(objParam[1]);