Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/lua/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows 无法加载lua dll模块_Windows_Lua_Dllexport - Fatal编程技术网

Windows 无法加载lua dll模块

Windows 无法加载lua dll模块,windows,lua,dllexport,Windows,Lua,Dllexport,我不能加载一个LUA模块,它是32位C++ DLL。 lua模块和lua代码位于同一文件夹中 C++代码中的P>: extern "C" __declspec(dllexport) int luaopen_luartmidi(lua_State *L) { ... } lua第一行: local luartmidi=需要“luartmidi” 当我使用vs code lua 32位调试器运行lua代码时,我得到 错误消息: 发生异常:[C]:-1:加载模块时出错。。。从文件 找不到指定

我不能加载一个LUA模块,它是32位C++ DLL。 lua模块和lua代码位于同一文件夹中

C++代码中的P>:

extern "C" __declspec(dllexport) int luaopen_luartmidi(lua_State *L) {
    ...
}
lua第一行:

local luartmidi=需要“luartmidi”

当我使用vs code lua 32位调试器运行lua代码时,我得到 错误消息:

发生异常:[C]:-1:加载模块时出错。。。从文件

找不到指定的函数

Dependency Walker说缺少LUA.DLL。当我在同一个文件夹中复制lua.dll时,我得到一个错误


c:Users/xyz/.vscode/extensions/actboy168.lua-debug-1.23.1/runtime/win32/lua53/lua.exe:检测到多个lua vm

当您静态链接到lua解释器,然后尝试加载链接到lua DLL的外部模块(并期望存在lua.DLL或类似命名的库)时,会发生这种情况。不能让静态编译的解释器和从DLL加载的解释器都出现在同一进程中(检查此条件会触发“检测到多个Lua VM”消息)

您有三种选择:

  • 静态编译所有内容(不加载任何外部模块)
  • 动态编译所有内容(不要静态链接Lua解释器)
  • 使用将API调用从外部库转发到静态链接Lua解释器的代理库(需要导出Lua符号并编写代理库)。有关代码和详细信息,请参见链接(它适用于Lua5.1,但您可以调整Lua5.3的脚本)