上一篇中,你已经可以在Lua里面用C++的函数了,那么咱们再增加一点难度,比如,我有一个CTest对象,要作为一个参数,传输给func_Add()执行,怎么办?
很简单,如果你对上面的代码仔细阅读,你会发现下面的代码一样简洁。为了支持刚才要说的需求,我们需要把Sample.lua再做一点修改。
function func_Add(x, y, f) -- New了一个CTest对象,并进行赋值操作,最后把结果打印在屏幕上 -- local test = CTest:new() -- test:SetData("I'm xiaotian") -- test:GetData() f:SetData("I'm xiaotian") f:GetData() return x..y; end
假设就是我们要传入的CTest对象。我们要在Lua里面使用它。(我们的CLuaFn都不用改,把main函数稍微改一下即可,来看看怎么写。)
#include "CLuaFn.h" int main(int argc, char* argv[]) { CLuaFn CLuaFn; CLuaFn.Init(); CLuaFn.InitClass(); CLuaFn.LoadLuaFile("Sample.lua"); CParamGroup ParamIn; CParamGroup ParamOut; char szData1[20] = {'