微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

lua与c++的相互调用

一.   lua调用C++

      在lua中是以函数指针的形式调用函数,并且所有的函数指针都必须满足如下此种类型:
typedef int (*lua_CFunction) (lua_State *L);  
也就是说,偶们在C++中定义函数时必须以lua_State为参数,以int为返回值才能被Lua所调用. 但是不要忘记了,偶们的lua_State是支持栈的,所以通过栈可以传递无穷个参数,大小只受内存大小限制. 而返回的int值也只是指返回值的个数真正的返回值都存储在
lua_State的栈中. 偶们通常的做法是做一个wrapper,把所有需要调用函数都wrap一下,这样就可以调用任意的函数了.

脚本为

 

avg,sum = average(10,20,30,40,50)

print("The average is ",avg)

print("The sum is ",sum)

 

 

 

二.  C++调用lua

 

 

 

脚本为:

 

-- add two numbers

function add ( x,y )

return x + y + 2

end

 

z = 6

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐