zoukankan      html  css  js  c++  java
  • lua与c++的相互调用入门篇

        进入游戏行业,开始学习lua,lua脚本语言的优势在于灵活,游戏行业应用相当广泛,因为支持动态加载,所以是必不可少的存在。可以想想,如果死守C++不放,有一个bug,莫非修正bug后重启服务器?这得浪费多少时间?

       好了,废话少说,上流程。

        1:下载lua源码:http://www.lua.org/ftp/

        2:建立控制台应用程序,选择“静态库”,去掉“预编译头”选项

                  

            3:将下载的lua源码 添加到工程,如下图

                  

                 4:选择Release 模式

                 5:为了防止4996错误,在“预处理器”中加入 “_CRT_SECURE_NO_WARNINGS”

                  

                  6:好了,编译生成.

                  

               源码编译工作到这里就结束了,进入第二步

             二:

                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和库即可,http://download.csdn.net/download/kingsollyu/6888211)  博主就用的这个,比较不错。

          

         tolua++
    使用MIT license。下载地址:http://www.codenix.com/~tolua/        //这个口碑也不错呀~!各有所好~

                    

  • 相关阅读:
    VOA 2009/11/02 DEVELOPMENT REPORT In Kenya, a Better Life Through Mobile Money
    2009.11.26教育报道在美留学生数量创历史新高
    Java中如何实现Tree的数据结构算法
    The Python Tutorial
    VOA HEALTH REPORT Debate Over New Guidelines for Breast Cancer Screening
    VOA ECONOMICS REPORT Nearly Half of US Jobs Now Held by Women
    VOA ECONOMICS REPORT Junior Achievement Marks 90 Years of Business Education
    VOA 2009/11/07 IN THE NEWS A Second Term for Karzai; US Jobless Rate at 10.2%
    Ant入门
    Python 与系统管理
  • 原文地址:https://www.cnblogs.com/dragonmoon/p/4060675.html
Copyright © 2011-2022 走看看