【发布时间】:2018-04-20 06:52:36
【问题描述】:
使用“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]);
顺便说一句,下面的就OK了..
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
有什么好办法吗?
谢谢。
【问题讨论】:
-
“在此处输入图片描述”不是问题。
-
请添加您尝试过的代码和错误日志
-
丹尼,欢迎来到 StackOverflow。我很抱歉告诉你,但这是一个可怕的第一个问题。请花点时间阅读tour,然后阅读How to Ask。