У меня есть эта простая программа:
#include <lua.hpp>
int main() {
lua_State * ls = lua_newstate(0, 0);
lua_close(ls);return 0;
}
Я поместил Lua DLL в нужную папку, связал библиотеки, настроил папку include и скомпилировал. Он скомпилирован чисто, но когда я запускаю программу, он показывает мне
этот. Я использую последнюю версию LuaBinaries с Visual Studio 2017
Вы даете lua_newstate
нулевой указатель в качестве распределителя. Естественно, когда он попытается выделить что-то, будет нарушение доступа, как вы видели.
Почему вы пытаетесь назвать это так? Может ты хочешь luaL_newstate()
вместо? Он предоставляет собственную систему распределения, поэтому вам не нужно писать свою собственную.
Других решений пока нет …