LuaPlus



  • Hi,

    ich bin mir nicht sicher, ob es in dieses Unterforum gehört. Ich habe ein Problem mit folgendem C++-Code, welches LuaPlus verwendet (ich hoffe, jemand
    kennt sich damit aus und kann mir helfen).

    #include <iostream>
    #include <LuaPlus/Luaplus.h>
    
    int main()
    {
       LuaPlus::LuaStateOwner state;
       state->DoString("function Add(x, y) return x + y end");
    
       LuaPlus::LuaFunction<float> Add = state->GetGlobal("Add") ; // <-- Fehler!
    
       std::cout << "Add: " << Add(2, 7) << std::endl;
    
       return 0;
    }
    

    Ich arbeite mit Dev-C++ 4.9.9.2 (Grundversion, also ohne jeglichen Updates) und dieser wirft mir folgenden Fehler raus:

    main.cpp:9: error: conversion from `LuaPlus::LuaObject' to non-scalar type `LuaPlus::LuaFunction<float>' requested
    

    Ich verstehe diese Meldung nicht. Kann mir jemand weiterhelfen?
    Entsprechende Bibliotheken sind eingebunden.
    Danke im voraus.

    BigBoomer



  • Och die ist doch eigentlich ganz verständlich.

    state->GetGlobal("Add")
    

    gibt anscheinend kein

    LuaPlus::LuaFunction<float>
    

    Objekt zurück.



  • ich kenn mich mit Lua nicht aus, aber die fehlermeldung besagt, daß state->GetGlobal("Add") keine lua-funktion sondern ein LuaObjekt zurückgibt. warscheinlich mußt du die funktion erst mit einer dafür vorgesehenen methode aus dem objekt auslesen.

    so in der richtung:

    state->GetGlobal("Add")->DieLuaObjektFunktionsGetMethode();
    

Anmelden zum Antworten