1

回答を読んで適用したことに注意してください: Luabind から C++ メンバー関数を呼び出すと、「一致するオーバーロードが見つかりません」が発生しますが、これで問題は解決しませんでした。

luabindを介してLUAに公開する単純なクラスがあります

バインディング コードは次のとおりです。

void LogManager::luaBindImpl() const
{
    using namespace luabind;
    lua_State* state(Supervisor::getSingleton().getManager<LuaManager>()->state());

    // LogManager
    module(state)
    [
        class_<LogManager>("LogManager")
        .enum_("LogType")
        [
             value("Info", 1)
            ,value("Warning", 2)
            ,value("Critical", 3)
            ,value("Debug", 4)
        ]
        .def("log", &LogManager::log)
        .def("registerSource", &LogManager::registerSource)
    ];

    // Add to globals
    globals(state)["LogManager"] = this;
};  // eo luaBindImpl

そして、ここに私のLUAがあります:

LogManager.registerSource("lol");

しかし、タイトルに記載されているエラーが発生します(これはログファイルから直接取得したものです):

00:00:00:0520- lua:Exception - No matching overload found, candidates:
void registerSource(LogManager&,std::string const&)

私はこれで髪を引き裂いてきましたが、何が間違っているのかわかりません。誰でも光を当てることができますか?! :)

4

1 に答える 1