lua 调用 VS2017 生成的dll错误
不是没有找到文件,文件是找到了的但是模块没找到cpp 代码如下
#include "interface.hpp"
namespace my_demo {
struct test {
int value;
test() = default;
test(int val) : value(val) {}
int get_value() { return value; }
void set_value(int val) { value = val; }
void evaluate(sol::function eval) { eval(value); }
};
static sol::table require_api(sol::this_state L) {
sol::state_view lua(L);
sol::table module = lua.create_table();
module.new_usertype<test>("test",
sol::constructors<test(), test(int)>(),
"value", &test::value,
"get", &test::get_value,
"set", &test::set_value,
"evaluate", &test::evaluate);
return module;
}
}
LUAMOD_API int luaopen_test(lua_State* L)
{
return sol::stack::call_lua(L, 1, my_demo::require_api);
}
hpp 代码如下
#ifndef LUA_DEMO_HPP
#define LUA_DEMO_HPP
#if defined(_MSC_VER) && (_MSC_VER >= 1200)
# pragma once
#endif // defined(_MSC_VER) && (_MSC_VER >= 1200)
#include "sol/sol.hpp"
#define SOL_ALL_SAFETIES_ON 1
// forward declare as a C struct
// so a pointer to lua_State can be part of a signature
extern "C" {
struct lua_State;
LUAMOD_API int luaopen_test(lua_State* L);
}
#endif
lua 文件在截图中,错误类型也是,已验证不是路径问题,lua.exe,luac.exe,lua.dll是自己编译的用的同一个,不过vs中怎么使用dll没查到,用的lib,希望路过的大神帮忙解决一下,搞了不少时间了没解决头大