3

私はCでLuaを使用する方法を学ぼうとしているので、ファイルを台無しにしたくないので、ファイルからスクリプトをロードせずにスクリプトを実行してみます。単純な文字列を実行するためにどの関数を呼び出す必要があるか、または何をする必要があるかを誰かに教えてもらえますか?

4

2 に答える 2

6

luaL_dostringを使用して、文字列からスクリプトを実行できます。

基本(Lua状態の作成など)についてサポートが必要な場合は、LuaでのプログラミングのパートIVをお読みください。

于 2010-01-30T21:07:12.367 に答える
0

プロジェクトにLuaバッファーをロードする関数を作成しました。コードは次のとおりです。

bool Reader::RunBuffer(const char *buff,char* ret_string,const char *name){
    int error = 0;
    char callname[256] = "";
    if( m_plua == NULL || buff == NULL || ret_string == NULL ) return false;
    if( name == NULL ){
        strcpy(callname,"noname");
    }else{
        strcpy(callname,name);
    }
    error = luaL_loadbuffer(m_plua, buff, strlen(buff),callname) || lua_pcall(m_plua, 0, 1, 0);
    if (error){
        fprintf(stderr, "%s\n", lua_tostring(m_plua, -1));
        lua_pop(m_plua, 1);
    }else{
        sprintf(ret_string, "%s", lua_tostring(m_plua, -1));
    }
    return true;
}

このコードはバフを取り、ret_stringを返します。@interjayluaL_dostringが言ったように選択です。

于 2015-12-03T06:19:05.590 に答える