zoukankan      html  css  js  c++  java
  • VS2012+LUA环境搭建

    1 、启动VS2012,选择C++下的"win32"项目类型中的"Win2控制台应用程序"
    2、工具——选项——项目和解决方案——VC++目录——可执行程序(C:Program FilesLua5.1);包含文件(C:Program FilesLua5.1include);库文件(C:Program FilesLua5.1lib);项目——'项目名'属性 子菜单——配置属性——链接器——输入——附加依赖项(lua51.lib lua5.1.lib)


    #include "stdafx.h"
     
    #include  
    #include  
    extern "C"   
    {  
        #include "lua.h"  
        #include "lauxlib.h"  
        #include "lualib.h"  
    }  
      
    #pragma comment(lib, "lua51.lib")  
     

    头文件lua.h定义了lua提供的基础函数,包括创建lua环境、调用lua函数(如lua_pcall)、读写lua环境中全局变量,以及注册供lua调用的新函数等。Lua.h中定义所有内容都有一个lua_前缀。

    头文件lauxlib.h定义了辅助库(auxiliary library,auxlib)提供的函数。它的所有定义都以luaL_开头(如luaL_loadbuffer)。辅助库是一个使用lua.h中API编写出的一个较高的抽象层。Lua的所有标准库编写都用到了辅助库。

    注意:Lua脚本的编译执行是相互独立的,在不同的线程上执 行。通过luaL_newstate()函数可以申请一个虚拟机,返回指针类型lua_State。今后其他所有Lua Api函数的调用都需要此指针作为第一参数,用来指定某个虚拟机。所以lua_State代表一个lua虚拟机对像,luaL_newstate()分配 一个虚拟机。lua类库管理着所有的虚拟机。销毁指定虚拟机的所有对像(如果有垃圾回收相关的无方法则会调用该方法)并收回所有由该虚拟机动态分配产生的 内存,在有些平台下我们不需要调用此函数,因为当主程序退出时,资源会被自然的释放掉,但是但一个长时间运行的程序,比如后台运行的web服务器,需要立 即回收虚拟机资源以避免内存过高占用。

     

     

    搭建编程环境的步骤和使用其他第三方C库没有什么区别,先设置好lua的3个头文件的路径,和一个lib 的路径,然后编写C代码。

    你肯定已经看过相关的手册了,正确初始化lua_State以后,可以使用luaL_dofile执行磁盘上的lua脚本文件,也可以使用luaL_dostring执行脚本片段。后者相当于JScript里面的eval()函数,可以执行lua脚本文件中的全部或某一个特定部分。

    如果担心找不到,就把它们放在同一个文件夹下,require会默认搜索包括当前路径下的lua、clibs文件夹
  • 相关阅读:
    hadoop再次集群搭建(3)-如何选择相应的hadoop版本
    48. Rotate Image
    352. Data Stream as Disjoint Interval
    163. Missing Ranges
    228. Summary Ranges
    147. Insertion Sort List
    324. Wiggle Sort II
    215. Kth Largest Element in an Array
    快速排序
    280. Wiggle Sort
  • 原文地址:https://www.cnblogs.com/liwenbin/p/3488311.html
Copyright © 2011-2022 走看看