Lua 怎样调用脚本里带有C++对象参数的函数(在线等呀!)

Juchiyufei 2008-08-29 03:19:44
我有一个C++的类CTest,通过tolua++转换了一下,就可以在lua脚本中正常的使用了,并且有一个C++函数,它的参数是CTest类型,通过tolua++也可以在脚本中正常的调用了。

我写了一个标准的lua函数(指使用lua内置的一些类) 如:
function add( x, y)
return ((x + y) * 1.0)
end
我在程序(C++代码)中通过手动的压栈操作也能正常的调用,类似于lua_getglobal(L, "add");lua_pushnumber(L, x);lua_pushnumber(L, y);(因为我不知道是否有工具可以把lua函数转成C/C++函数直接调用的,问题1)。

现在我需要调一个lua脚本函数,但它的参数是我上面的CTest类型,如:function add2(ObjectTest) ... end.
那怎么在程序中进行压栈操作呢? 问题2。


另外:感觉网上关于lua与C/C++互相通信调用(涉及到对象class,struct)之类的很少,或许是我没找到,还请告之。
我最高只能放100分的贴,若是不够,还可再开贴给分:),我问的似乎有点傻,还请不吝赐之!
...全文
1123 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
Juchiyufei 2008-09-24
  • 打赏
  • 举报
回复
这么久了,虽然没有满意答案,“你此次的悬赏分将被系统收回,不会返还给你!”因为它这句话,我决定还是给分,总比给系统的要好!

嘿嘿
Juchiyufei 2008-09-10
  • 打赏
  • 举报
回复
lua好像不能跨DLL調用吧?

fsy412 2008-09-07
  • 打赏
  • 举报
回复
调用自定义类型要用Userdata
fsy412 2008-09-07
  • 打赏
  • 举报
回复
*/LUA中的函数
function f (x, y)
return (x^2 * math.sin(y))/(1 - x)
end


*调用在LUA中定义的函数
double f (double x, double y) {
double z;

/* 函数和参数入栈
lua_getglobal(L, "f"); /* 将要调用的函数*/
lua_pushnumber(L, x); /* 压入第一个参数*/
lua_pushnumber(L, y); /* 压入第二个参数*/

/* 调用函数 (2 参数, 1 结果) */
if (lua_pcall(L, 2, 1, 0) != 0)
error(L, "error running function `f': %s",
lua_tostring(L, -1));

/* 取得结果*/
if (!lua_isnumber(L, -1))
error(L, "function `f' must return a number");
z = lua_tonumber(L, -1);
lua_pop(L, 1); /* 出栈 */
return z;
}

PS.大部分LUA资料可以在GOOGLE上找到,国内这方面资料不多。
flm007 2008-09-03
  • 打赏
  • 举报
回复
兄弟,我来接分了!哈哈
qq_sugar 2008-08-30
  • 打赏
  • 举报
回复
http://blog.sina.com.cn/s/blog_55288aa20100068d.html
tunnel115 2008-08-30
  • 打赏
  • 举报
回复
这个不会啊。学习
caimps 2008-08-29
  • 打赏
  • 举报
回复
学习
Juchiyufei 2008-08-29
  • 打赏
  • 举报
回复
因为我是用lua嘛,现要如果我转到其它版面去(连接地址就会改变,是不?),那么之前打的一些广告就无效了。
K行天下 2008-08-29
  • 打赏
  • 举报
回复
咋么发到其他开发语言呢
coverallwangp 2008-08-29
  • 打赏
  • 举报
回复
强分!
太乙 2008-08-29
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 Juchiyufei 的回复:]
怎么还没人来抢分呢?
[/Quote]

汗~~发到c++版去!~
Juchiyufei 2008-08-29
  • 打赏
  • 举报
回复
怎么还没人来抢分呢?

3,423

社区成员

发帖
与我相关
我的任务
社区描述
其他开发语言 其他开发语言
社区管理员
  • 其他开发语言社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧