使用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

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

Effective JavaScript Item 21 使用apply方法调用函数以传入可变参数列表

本系列作为Effective JavaScript的读书笔记。   下面是一个拥有可变参数列表的方法的典型例子: average(1, 2, 3); // 2 average(1); /...

VS2005中使用mschart 与VC6中调用函数的区别

在VS2005中 1如果是对话框或是FORMVIEW中使用,添加ActiveX控件: Tools->choose toolbox items->COM components  选择Microsoft...

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

http://blog.csdn.net/wangbin_jxust/article/details/37557935 一、创建项目 同样在该解决方案中,右键解决方案->添加项目-...

怎么使用EL调用函数

这个是我学习总结..欢迎大家提意见..

【python】使用__getattr__动态调用函数

最近做的一个软件用到了python的新浪api,在它的源码中发现了一个很神奇的地方:在类的实例中可以动态调用之前未定义的函数。 先看一段代码: #-*- coding:utf8 -*- ...

Linux常用系统调用函数.ppt

  • 2015-11-22 10:58
  • 454KB
  • 下载

Lua5.1中的API函数

Lua5.1中的API函数 Posted on 2009-08-08 23:51 白耘  lua_State* luaL_newstate() Lua脚本的编译执行是相互独立的...

IC卡调用函数

  • 2014-06-30 23:59
  • 40KB
  • 下载
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

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