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

paip.c++ lua 调用attilax总结.相关推荐

  1. paip 按键精灵调用其它程序及DLL以及EXE命令行的方法

    分享一下我老师大神的人工智能教程!零基础,通俗易懂!http://blog.csdn.net/jiangjunshow 也欢迎大家转载本篇文章.分享知识,造福人民,实现我们中华民族伟大复兴! paip ...

  2. Step By Step(Lua调用C函数)

    Lua可以调用C函数的能力将极大的提高Lua的可扩展性和可用性.对于有些和操作系统相关的功能,或者是对效率要求较高的模块,我们完全可以通过C函数来实现,之后再通过Lua调用指定的C函数.对于那些可被L ...

  3. lua——alien库实现lua调用C动态链接库(dll、so)

    我们知道,lua通过lua_State堆栈可以很方便的与C语言进行交互 http://blog.csdn.net/sm9sun/article/details/68946343 也可以调用专门为lua ...

  4. lua 调用c++ dll, 提示:%1 不是有效的 Win32 应用程序。

    lua 调用c++ dll, 提示:lua: error loading module 'cppdll2' from file '.\cppdll2.dll': %1 不是有效的 Win32 应用程序 ...

  5. 穿山甲android对接错误码40029,空Android项目集成Cocos、穿山甲。Lua调用网络接口。...

    1. 搭建安卓空项目.集成cocos.穿山甲广告新建安卓项目start new android projectEmpty Activity包名这里要和穿山甲上面已创建的应用的包... 1. 搭建安卓空 ...

  6. Cocos2d-x下Lua调用自定义C++类和函数的最佳实践

    关于cocos2d-x下Lua调用C++的文档看了不少,但没有一篇真正把这事给讲明白了,我自己也是个初学者,摸索了半天,总结如下: cocos2d-x下Lua调用C++这事之所以看起来这么复杂.网上所 ...

  7. 【Lua进阶系列】实例lua调用capi

                             [Lua进阶系列]实例lua调用capi     大家好,我是Lampard~~     欢迎来到Lua进阶系列的博客     首先祝大家2021新年 ...

  8. LUA调用C(一)-----CAPI

    LUA调用C(一)-----CAPI ​ 一:为什么要使用Lua调用C函数 在lua中调用C函数可以提高程序的运行效率.所以lua与C的相互调用在工程中相当实用,本文就来讲解lua与C相互调用的方法. ...

  9. ios平台触动精灵lua调用C语言

    随着移动设备的兴起,Lua 作为嵌入式脚本语言,由于其自身的特点及优势,在应用领域使用度越来越高.触动精灵是一个手机游戏辅助平台,可以在上面开发自动化游戏的脚本,编程语言为lua.调用C语言对lua进 ...

  10. Lua调用C(二) ----ffi方式

    Lua调用C(二) ----ffi方式 一.什么是ffi库 ​ FFI 库,是 LuaJIT 中最重要的一个扩展库. ​ 它允许从纯 Lua 代码调用外部 C 函数,使用 C 数据结构.有了它,就不用 ...

最新文章

  1. 「杂谈」那些越早知道越好的人生经验
  2. Admin注册和路由分发详解
  3. CV之FR(H+k机器学习):基于每人几张人脸图片训练H+k模型实现(国内外明星)新人脸图像的姓名预测(准确度高达100%)
  4. spring ResponseEntity
  5. 画面轻松浪漫的伪原创工具
  6. 内核aio_linux内核aio功能
  7. 3D建模与处理软件简介
  8. UG NX 12 使用快捷键调整视图方位
  9. H5如何实现唤起APP
  10. Perfectly Clear Complete V3 mac(ps/lr智能修图插件)破解版
  11. 分享使用谷歌Colab 常用小tips, 玩转Google Colab
  12. LVS之ipvsadm命令
  13. 简单的微服务feign之间调用授权/安全验证
  14. OpenXR+Runtime:OpenXR SDK与Runtime的衔接
  15. SAP中参照采购协议发票校验时带出价格与协议当前价格不一致的案例分析
  16. 数据结构——冒泡排序(C语言)
  17. 程序员生存定律-六个程序员的故事(2) .
  18. 《机器学习实战》第二章 - k-近邻算法
  19. BZOJ 1933 [Shoi2007]Bookcase 书柜的尺寸 ——动态规划
  20. 更新pip3与pyttsx3文字语音转换

热门文章

  1. 内网访问已经启动的vue项目
  2. getTime()的兼容性(ios)
  3. 【对讲机的那点事】对讲机数字语音加密,保障通信安全
  4. Laravel 项目使用 Carbon 人性化显示文章发表时间
  5. Netty5+Jboss(Marshalling)完成对象序列化传输
  6. C语言的这些事情有关内存
  7. DevComponents.AdvTree 相关笔记
  8. 揭开Socket编程的面纱 (四)
  9. multiprocessing模块
  10. IMCASH:2019年区块链不会风平浪静,至少还有10件事值得期待