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

Attilax分享了在C++中调用Lua进行编程的详细步骤,包括安装Lua,编写并调用Lua脚本,以及使用IDE进行调试。讨论了在命令行下运行Lua脚本的方法,同时解释了在C++源码中引入Lua库和DLL的必要性。文章还解决了调用过程中遇到的常见问题,并对比了lua5.1.dll和lua51.dll的区别。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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


作者Attilax ,  EMAIL:1466519819@qq.com 
来源:attilax的专栏
地址:http://blog.youkuaiyun.com/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的专栏 - 博客频道 - youkuaiyun.com.htm
Lua小部分文件io操作方法 - 朱大仙 - 博客园.htm
lua与c++的相互调用 - 笑对人生的专栏 - 博客频道 - youkuaiyun.com.htm
在C++中使用Lua(一)-wwm-ChinaUnix博客.htm

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值