标题:lua 调用 VS2017 生成的dll错误
只看楼主
rookie_
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-10-8
 问题点数:0 回复次数:1 
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,希望路过的大神帮忙解决一下,搞了不少时间了没解决头大
搜索更多相关主题的帖子: test value dll int lua 
2019-10-08 18:13
rookie_
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2019-10-8
得分:0 
问题解决,由于使用了sol2,而未定义
2019-10-09 10:03



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-497140-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.346943 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved