zoukankan      html  css  js  c++  java
  • paip.c++ lua 调用attilax总结.

    paip.c++ lua 调用attilax总结.


    作者Attilax ,  EMAIL:1466519819@qq.com 
    来源:attilax的专栏
    地址:http://blog.csdn.net/attilax




    安装lua ... LuaForWindows_v5.1.4-46.exe (25M)

    Download Lua_V5.1.4-46.exe from Google Code
    包括文档,例子等...实际的lua 很小,几百kb..




    //编辑*.lua文件
    IDE使用D:\Program Files\Lua\5.1\SciTE\SciTE.exe,可以单步调试.测试
    name="attilax"
    print (name)


    file = io.open("c:\lualog.txt","a")
     --用'写模式'打开a.txt 不存在则新建文件


      file:write("Hello world.\n")
     --将字符串写入文件


      file:close()


    命令行调用测试lua.exe   *.lua






    引用lua.h以便编译以及以及lua的dll 以便链接

    INCLUDEPATH += "D:\Program Files\Lua\5.1\include"
    #LIBS+="D:\Program Files\Lua\5.1\lib\lua5.1.dll"
    LIBS+="D:\Program Files\Lua\5.1\lib\lua51.dll"


    c++源码:

    #include "mainwindow.h"
    #include <QApplication>
    extern "C" {
    #include "lua.h"
    #include "lualib.h"
    #include "lauxlib.h"
    }


    #include <iostream>
    #include <string>
    using namespace std;




    int main(int argc, char *argv[])
    {
        lua_State *L = lua_open();    //初始化lua
           luaL_openlibs(L);    //载入所有lua标准库


           /* 运行脚本  D:\Program Files\Lua\5.1*/
       //   luaL_dofile(L, "c:\luaTestC9.lua");   //ok
           luaL_dofile(L,"D:\\Program Files\\Lua\\5.1\\luaTestC9.lua");


           lua_close(L);//关闭
           return 0;
    }




    //加入lua  lib  dll到path,以便运行


    D:\Program Files\Lua\5.1\clibs
    D:\Program Files\Lua\5.1\lib




    ///调用中发现的问题以及解决:
    1073741515错误。。
     原因:有文件没找到...
     调用pm,调试,发现不能找到*.lua路径错误...修理成双引号为路径分割,..走ok..






    lua5.1.dll以及lua51.dll区别

    其中lua5.1.dll大小合适,lua51.dll只有11K,感觉不像是个有用的lua dll
    lua51.dll完全是一个lua5.1.dll的代理类,没有任何实际的代码,仅仅是做一个到lua5.1.dll的forwarding。
    为啥会需要一个这样的东西呢?
    原来是3年前有人确定了一个lua51.dll名字的动态库,并且,有人觉得我们非常需要在5和1之间加一个点,不然lua的5.1版岂不是看成lua的51版了?
    历史原因:
    一个错误的决定,但是已经发布了,很多第3方的库也发布了,并且依赖于LuaBinaries的这个lua51.dll,于是
    现在难以撤销的不幸决定。。。。。。。。。。。。




    文档资料:

    Lua程序设计.chm
    luaer.cn




    参考
    lua51.dll,lua51.lib 和 lua5.1.dll 和lua5.1.lib 的区别 - xiexievv的专栏 - 博客频道 - CSDN.NET.htm
    Lua小部分文件io操作方法 - 朱大仙 - 博客园.htm
    lua与c++的相互调用 - 笑对人生的专栏 - 博客频道 - CSDN.NET.htm
    在C++中使用Lua(一)-wwm-ChinaUnix博客.htm

  • 相关阅读:
    Yield Usage Understanding
    Deadclock on calling async methond
    How to generate file name according to datetime in bat command
    Run Unit API Testing Which Was Distributed To Multiple Test Agents
    druid的关键参数+数据库连接池运行原理
    修改idea打开新窗口的默认配置
    spring boot -thymeleaf-url
    @pathvariable和@RequestParam的区别
    spring boot -thymeleaf-域对象操作
    spring boot -thymeleaf-遍历list和map
  • 原文地址:https://www.cnblogs.com/attilax/p/15199486.html
Copyright © 2011-2022 走看看