Heim  >  Artikel  >  Backend-Entwicklung  >  So verwenden Sie C++, um die Lua-Code-Konfigurationsdateifunktion in einem Zug aufzurufen (Code im Anhang)

So verwenden Sie C++, um die Lua-Code-Konfigurationsdateifunktion in einem Zug aufzurufen (Code im Anhang)

php是最好的语言
php是最好的语言Original
2018-07-23 17:09:221927Durchsuche

Es gibt zwei Funktionen in der Lua-Datei, und dann wird die CPP-Datei zum Aufrufen des Codes verwendet. Zum Schluss gibt es einen sehr wichtigen Schritt beim Kompilieren: g++ main.cpp -o main -llua -ldl . Der Prozess scheint einfach zu sein, erfordert jedoch dennoch eine praktische Bedienung.

Zuerst müssen Sie Luas Entwickler installieren. Die Installation ist sehr einfach:

yum install lua-devel

Viele Linux-Systeme werden mit Lua, aber ohne Entwickler geliefert etwas klein.

Das Folgende ist eine Lua-Datei, die zwei Funktionen enthält:

function add(a, b)
    return a + b 
end

function hello()
    print("Hello Lua!!!")
end

Dann ist der Aufrufcode der CPP-Datei:

#include<iostream>
#include<string>

using std::cout;
using std::endl;
using std::string;

//extern的意义,将下面文件当成C风格文件使用
extern "C"
{
    #include<lua.h>
    #include<lauxlib.h>
    #include<lualib.h>
}

int main()
{
    //创建环境
    lua_State *L = luaL_newstate();
    if(L == NULL)
    {   
        cout << "State error" << endl;
        return -1; 
    }   

    //加载库
    luaL_openlibs(L);
    const string file = "func.lua";
    // 加载文件
    int ret = luaL_dofile(L, file.c_str());
    if(ret)
    {   
        cout << "dofile error" << endl;
        return -1; 
    }   

    //hello函数没有参数,直接调用
    lua_getglobal(L, "hello");
    lua_pcall(L, 0, 0, 0); //三个0含义,0实参,0返回值,0自定义错误处理

    lua_getglobal(L, "add");  
    //向add函数传入两个参数,这里直接传了1和2,传变量也ok
    lua_pushnumber(L, 1);  
    lua_pushnumber(L, 2); 
    lua_pcall(L,2,1,0);        

    //返回值被放在-1的位置上
    cout << lua_tonumber(L, -1) << endl;

    lua_close(L);

    return 0;
}

Schließlich Es gibt viele. Der wichtigste Schritt besteht darin, beim Kompilieren zusätzliche Optionen hinzuzufügen:

g++ main.cpp -o main -llua -ldl

Siehe Schauen Sie sich die Ergebnisse an:

So verwenden Sie C++, um die Lua-Code-Konfigurationsdateifunktion in einem Zug aufzurufen (Code im Anhang)

Fertig

Verwandte Empfehlungen:

Erinnern Sie sich an das erste Beispiel, in dem Lua und C sich gegenseitig anrufen

Lua- und C-Sprache rufen sich gegenseitig auf

Wie C++ PHP-Funktionen aufruft

Das obige ist der detaillierte Inhalt vonSo verwenden Sie C++, um die Lua-Code-Konfigurationsdateifunktion in einem Zug aufzurufen (Code im Anhang). Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn