Могу ли я загрузить lua 5.3.5 dll, написанный на c ++ из lua 5.0.2? - PullRequest
1 голос
/ 18 января 2020

Я работаю над модификацией игры. Есть возможность писать дополнения в lua коде. Так как это старая игра, она lua 5.0.2. Мне нужны более мощные функции, которые я не могу сделать в lua, поэтому я хотел бы написать эти вещи на c ++, скомпилировать их в dll и импортировать эти функции из lua.

. использование последней версии сообщества VS для разработки на С ++. Я не нашел источник 5.0.2, поэтому я собираю lua 5.3.5 из источника с помощью VS. Теперь, когда я загружаю dll используя require я получил эту ошибку

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);
}

Я не уверен, если проблема заключается просто в том, что dll собирается с использованием исходного кода 5.3.5, а игра работает на 5.0.2, или если я просто делаю что-то не так в своем коде dll.

Спасибо за вашу помощь : D

1 Ответ

2 голосов
/ 18 января 2020

Ваша DLL, созданная для Lua 5.3, не будет работать правильно, когда загружается приложением, которое использует Lua 5.0. Чтобы приложение и DLL работали вместе с Lua, они оба должны говорить с одной и той же реализацией Lua DLL. Поскольку приложение использует 5.0, это DLL, которая будет загружаться (при условии, что она вообще использует Lua в качестве DLL) и взаимодействовать с ней. Таким образом, ваш плагин должен быть собран из той же DLL, что и приложение.

...