c++ - 我可以从lua 5.0.2加载用c++编写的lua 5.3.5 dll吗?

标签 c++ dll lua

我正在修改游戏。有可能用lua代码编写插件。由于是较老的游戏,所以它的lua是5.0.2。我需要一些我在lua中无法执行的更强大的功能,因此我想用c++编写这些东西,将它们编译为dll,然后从lua导入这些功能。

我正在使用最新的VS社区版本进行c++开发。我还没有找到5.0.2源代码,所以我用VS从源代码构建了lua 5.3.5。
现在,我使用require加载dll,我得到了这个错误

error loading package `data\_lvl_pc\REMASTER\remaster_IO.dll' (data\_lvl_pc\REMASTER\remaster_IO.dll:1: `=' expected near `')

dll非常简单,可以测试dll的加载

#include "pch.h"
#include <lua.h>


int luaopen_remaster_IO(lua_State* L) {
    Beep(200, 200);
}

我不确定问题是否仅仅是使用5.3.5源代码构建的dll,而游戏是在5.0.2上运行的,还是我的dll代码只是做错了什么。

谢谢您的帮助:D

最佳答案

当使用Lua 5.0的应用程序加载时,针对Lua 5.3构建的DLL将无法正确执行操作。为了使应用程序和DLL与Lua一起使用,它们必须都与同一个Lua DLL实现进行通信。由于应用程序使用5.0,因此它就是要加载的DLL(假设它完全使用Lua作为DLL)并与之交互。因此,您的插件需要针对与应用程序相同的DLL构建。

关于c++ - 我可以从lua 5.0.2加载用c++编写的lua 5.3.5 dll吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59800736/

相关文章:

c++ - 我可以将可执行文件构建为 dll 吗?

c++ - 如何管理 C++ 依赖项

regex - 高级 Lua 模式匹配

c++ - 与 QSerialPort 的基本通信

c++ - 天真的把 C++ 翻译成 Julia,有优化的空间吗?

c++ - 在两个范围内按降序对 vector 进行排序

c++ - 当堆栈为空时, 'pop()' 方法应该返回什么?

c++ - 在 Delphi 中从 c++ DLL 调用函数

string - Lua - 获取 indexOf 字符串

python - 从 C++ 调用 Python 或 Lua 来计算表达式,仅在需要时计算未知变量