Lua与C++的相互调用入门篇

发表于:2014-11-21 10:41

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:落雪成冰    来源:51Testing软件测试网采编

  二:
  1:新建控制台应用程序,包含源码目录,为了方便以后应用,将lib文件改名“lua.lib",源码文件放入单一文件夹;
  2:在工程属性中"附加包含目录“包含lua源码目录,博主这里放在C盘。
  3:"附加依赖项" 包含 lib,记得放置在当前工作目录下,别忘记了。(提醒自学编程的同学)
  三:开始最后一步,堆代码啦。。
  C++代码如下:
#include "stdafx.h"
#include <iostream>
extern "C"
{
#include <lua.h>
#include <lualib.h>
#include <lauxlib.h>
}
lua_State *L;
static int frist_lua(lua_State * L)
{
int num =lua_tonumber(L,1);
std::cout<<num<<std::endl;
lua_pushstring(L,"Hello Lua");
return 1;
}
int _tmain(int argc, _TCHAR* argv[])
{
L= luaL_newstate();   //注册一个状态机
luaL_openlibs(L);    //加载lua库
lua_register(L,"frist_lua",frist_lua);
luaL_dofile(L,"C:\\hellolua.lua");   //加载lua脚本
lua_close(L);   //释放虚拟机
getchar();
return 0;
}
  lua代码:
  local hello = frist_lua(1)
  print(hello)
  运行结果:
  最后提醒下,真正的应用lua与c++交互 还有很多第三方插件,这里推介几款:
  lua tinker(lua5.0开发出来的插件,据说是韩国人,随着更新5.1还能用,5.2就不能用了网上流传作者不知道去哪里了,好在广大的程序猴们自己动手丰衣足食,5.2改动了下可以用了,下载地址如下,包含lib和库即可)  博主就用的这个,比较不错。
  tolua++
  使用MIT license。
22/2<12
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号