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文件夹
  • 相关阅读:
    树莓派学习记录
    ESP8266
    城轨列控系统
    VMware+CentOS7学习记录
    眼镜
    调试蜂鸣器驱动电路
    假期作业进度6
    假期作业进度5
    假期作业进度4
    假期作业进度3
  • 原文地址:https://www.cnblogs.com/liwenbin/p/3488311.html
Copyright © 2011-2022 走看看