lua中调用c++函数

//  average.cpp : Defines the entry point for the console application.
//

#include 
" stdafx.h "
#include 
< stdio.h >

extern   " C "  {

 #include 
" lua.h "

 #include 
" lualib.h "

 #include 
" lauxlib.h "

}

/*  指向Lua解释器的指针  */

lua_State
*  L;

static   int  average(lua_State  * L)

{
  
/*  得到参数个数  */

 
int  n  =  lua_gettop(L);

 
double  sum  =   0 ;

 
int  i;


 
/*  循环求参数之和  */

 
for  (i  =   1 ; i  <=  n; i ++ )

 {

  
/*  求和  */

  sum 
+=  lua_tonumber(L, i);

 }

 
/*  压入平均值  */

 lua_pushnumber(L, sum 
/  n);

 
/*  压入和  */

 lua_pushnumber(L, sum);

  
/*  返回返回值的个数  */

 
return   2 ;

}


int  main (  int  argc,  char   * argv[] )

{

 
/*  初始化Lua  */

 L 
=  lua_open();


 
/*  载入Lua基本库  */

 luaL_openlibs(L);


 
/*  注册函数  */

 lua_register(L, 
" average " , average);


 
/*  运行脚本  */

 luaL_dofile(L, 
" avg.lua " );


 
/*  清除Lua  */

 lua_close(L);


 
/*  暂停  */

 printf( 
" Press enter to exit… "  );

 getchar();


 
return   0 ;

}

avg.lua:

-- call a C++ function
avg, sum = average(10, 20, 30, 40, 50)
print("The average is ", avg)

print("The sum is ", sum) 

转载于:https://www.cnblogs.com/orez88/articles/2136491.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值