首页 > 其他 > 详细

Lua与C交换

时间:2015-10-21 06:49:52      阅读:185      评论:0      收藏:0      [点我收藏+]

1.概述

  近来研究Lua这个东西,官网为http://www.lua.org/,主要的目的是通过lua来对短信发送过来的业务报文转换为业务系统支持的格式,设计的思想是Lua进行业务报文的转换,报文的通讯采用c实现,因为要通过C实现SGIP协议报文的封装和到后台业务的转换。

2.C调用Lua函数

  (1)首先要进行Lua的初始化,这个主要是lua_open和luaL_openlibs函数

  (2)然后是解析并编译lua的代码,这个主要是luaL_dofile函数

   (3)  解析好之后使用lua_getglobal指明要调用的lua函数

   (4) 如果有lua函数的参数,通过使用lua_pushstring函数传递参数

   (5) 最后调用lua_pcall进行lua函数的调用

     (6) 调用完成之后采用lua_tonumber类函数可以获取到函数的返回结果

3.Lua调用C函数

  1. 在Lua中调用C的函数,该函数必须进行注册,这个通过lua_register这个函数来完成
  2. 在Lua中调用注册的函数,会调用上面注册的函数(类似于回调),所有的处理在这个函数里面
  3. 这个函数里面可以使用lua_tostring类函数来获取函数的参数
  4. 如果有返回值,通过lua_pushnumber这个函数来返回。

Lua与C交换

原文:http://www.cnblogs.com/blueoverflow/p/4896587.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!