注册 登录
编程论坛 Lua论坛

lua 调用 VS2017 生成的dll错误

rookie_ 发布于 2019-10-08 18:13, 2621 次点击
只有本站会员才能查看附件,请 登录
不是没有找到文件,文件是找到了的但是模块没找到
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,希望路过的大神帮忙解决一下,搞了不少时间了没解决头大
1 回复
#2
rookie_2019-10-09 10:03
问题解决,由于使用了sol2,而未定义
只有本站会员才能查看附件,请 登录
1