使用LUA调用DLL

本文介绍了如何在Windows上编译Lua 5.4,并使用C++生成DLL,解决5.2版本后lua_register等函数不被支持的问题。接着详细讲述了将DLL与Lua结合,通过交互模式调用函数的过程,以及遇到的一些错误和解决办法。
摘要由CSDN通过智能技术生成

之前希望学点lua来自定义ocgcore,然而官方的脚本机器都是C语言写的,要懂点Lua调用C/C++库的知识。所以看了下在线版的Programming in Lua,下了个5.4测试版的源代码自己编译了一下。

生成Lua编译器

貌似官网只说了*nix的几个发行版上的编译,对Windows上面不太友好(好吧是提供了二进制文件的下载方法)。我早些时候装了个MinGW-win64,所以用mingw32-make mingw(反正是类似的命令)就可以了。不知道为什么,命令后面跟install的话,总是报告找不到文件。我都不知道install是make自带的还是什么东西。反正光生成二进制文件就没问题,所以我就把几个文件从\src拷贝出来开始用了。

不过没想到在5.2版本后语言不支持lua_register之类的一批函数,原书中直接调用loadlib也不支持了(我试了一下package.loadlib好像是可以的)。

C++生成dll

先按照书里写了个C++文件打算编译成动态链接库(.dll)文件,无奈VS技术重回低谷,总是报连接错误,最后简单粗暴地把Lua所有源代码文件都放进项目里了(大概正确做法是把编译生成的lua54.dll放进去?)。

代码都是抄的,最后找到了正确的示例,感谢。

// test.cpp
extern "C" {
   
#include "lua.h&#
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值