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

  • 相关阅读:
    关于程序员的段子,你能读懂几个?网友:你若全对算我输!
    【C++学习笔记】超详细C++注释的使用方法,不赶紧收藏就错过啦!
    做编程容易短命?衷心建议:三十六计,“保命”要紧
    【C++学习笔记】C++异常处理!你绝对不能错过的干货!
    Linux Socket套接字出现问题怎么办?教你5个方法“有备无患”
    【致敬伟大的程序员】写代码写进国博,这么牛的还有谁?
    重要的事情说三遍:局部变量一定要初始化!你做到了吗?
    自我介绍
    .NET应用程序中嵌入VB6表单
    在VB6中使用。net DLL
  • 原文地址:https://www.cnblogs.com/attilax/p/15199486.html
Copyright © 2011-2022 走看看