使用Lua5.1互相调用函数

原创 2006年06月12日 17:04:00

这一个例子就是用来说明如何通过C语言,注册一个static的函数到lua的虚拟机中.然后通过C语言调用lua中的一个函数.lua中的这个函数又会调用C语言中注册的这个函数.

#include <iostream>
#include <lua.hpp>
#pragma comment(lib,"luastatic")

using namespace std;
// 函数定义
static int l_dir(lua_State *L)
{
 cout<<"第一个参数"<<luaL_checkstring(L,1)<<endl;
 cout<<"第二个参数"<<luaL_checknumber(L,2)<<endl;
 cout<<"hi"<<endl;
 return 0;
}

static const struct luaL_reg mylib[]={
 {"dir",l_dir},
 {NULL,NULL}
};

int luaopen_mylib(lua_State *L)
{
 luaL_register(L,"mylib",mylib);
 return 0;
}
int main()
{
 lua_State *L=luaL_newstate();
 luaopen_mylib(L);
 luaL_dofile(L,"d://test.lua");

 // 调用一个函数
 lua_getglobal(L,"f");
 lua_pushnumber(L,2);
 lua_pushnumber(L,3);
 lua_pcall(L,2,1,0);
 lua_close(L);
 return 0;
}

--[[
lua定义出来的文件.
--]]
function f (x, y)
 return mylib.dir("string",100)
 -- return (x^2*math.sin(y))/(1-x)
end

快速掌握Lua 5.3 —— 从Lua中调用C函数

Q:Lua调用C函数的两种方式? A: 1、程序主体在C中运行,C函数注册到Lua中。C调用Lua,Lua调用C注册的函数,C得到函数的执行结果。 2、程序主体在Lua中运行,C函数作为库函数供Lua...
  • VermillionTear
  • VermillionTear
  • 2016年04月03日 23:09
  • 7201

lua方法点(.)调用和冒号(:)调用区别:

 用.定义方法时object.func_name(arg1,arg2...),方法真正的函数签名形式为: object.func_name(arg1, arg2...) 用:定义方法时obje...
  • oaa608868
  • oaa608868
  • 2016年12月08日 01:01
  • 371

调用Lua函数

翻译自http://gamedevgeek.com/tutorials/calling-lua-functions/调用Lua函数这是Lua脚本语言教程系列之二。在第一篇中,我们学习了在Windows...
  • Lodger007
  • Lodger007
  • 2006年06月26日 15:06
  • 8930

cocos2d-x 3.x中lua调用原理1--从基本的c++与lua互相调用开始

刚开始弄cocos2d-x 3.x的lua框架。看了很多网上的文章和例子。到最后自己手动写 的时候也遇到很多困难。现在就把这个学习过程记录下来。  首先我看完了 lua脚本在c++的舞步。这篇文章很...
  • white_wang
  • white_wang
  • 2014年07月31日 11:33
  • 1939

vs项目中使用c++调用lua5.1

http://blog.csdn.net/wangbin_jxust/article/details/37557935 一、创建项目 同样在该解决方案中,右键解决方案->添加项目-...
  • nihao595
  • nihao595
  • 2015年09月23日 16:15
  • 829

快速掌握Lua 5.3 —— 从Lua中调用C函数

Q:Lua调用C函数的两种方式? A: 1、程序主体在C中运行,C函数注册到Lua中。C调用Lua,Lua调用C注册的函数,C得到函数的执行结果。 2、程序主体在Lua中运行,C函数作为库函数供Lua...
  • VermillionTear
  • VermillionTear
  • 2016年04月03日 23:09
  • 7201

关于cocos2dx如何绑定c++的静态方法和类给lua调用

静态绑定(这名词哪来的?呵呵 我也不知道 不要在意那么多细节),直接是绑定静态方法,不是绑定类的实例方法,绑定类的实例方法有点屌,知道为什么lua可以实现c++为底层的游戏框架不,其实就是利用绑定类的...
  • Mr_xin321
  • Mr_xin321
  • 2015年08月25日 11:36
  • 1527

C语言调用Lua函数

记得上学时,初中英文课本中,上网叫做surfing the internet,中文叫网上冲浪。那个时期,人们经常称互联网为赛博空间。如今工作了,大量的零碎时间用于上微博,知乎,QQ,这些碎片化的阅读让...
  • booirror
  • booirror
  • 2014年10月12日 23:26
  • 5183

Lua 与C/C++ 交互系列:通过C调用Lua函数(1)

1、Lua通过ANSI C 进行编写,Lua与C交互要遵循一定的协议规则。在Lua 5.1 Reference Manual中明确规定如何通过C Code调用Lua 编写的函数。      C  c...
  • sunning9001
  • sunning9001
  • 2015年06月20日 06:21
  • 554

cocos2dx关于在c/c++中调用lua函数

关于在c/c++中调用lua函数
  • u013174689
  • u013174689
  • 2014年12月05日 21:00
  • 1447
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:使用Lua5.1互相调用函数
举报原因:
原因补充:

(最多只允许输入30个字)