2016-08-05 14 views
1

CのAPIからLuaの単純なリストを作成します。そのように書かれています:私はこのLuaのコードを実行することがCで<code>dir()</code>機能を実装しようとしています

static int l_dir(lua_State *L) 
{ 
    lua_pushstring(L, "foo"); 
    lua_pushstring(L, "file"); 
    lua_pushnumber(L, 11); 

    return 3; 
} 

このエラーはforラインランニング:

lua_pcall() failed: 02_dir.lua:2: attempt to call a string value 
+1

'l_dir'を登録する行を含めます。 – a3f

+0

dirはこのように呼び出された場合は反復子関数でなければなりません。テーブルを返し、 'pair'を使って同じ仕事をします。 – zzn

答えて

0

あなたの問題は、あなたがリストとして戻り値を処理しようとしているということであり、それはあなたが意味の意味でのリストではありません。

読むためにあなたのLuaのファイルを更新します。

-- Define a function 
local function init() 
    local name, filetype, size = dir("Lang") 
    print(name, filetype, size) 
end 

-- call it :) 
init() 
0

このタスクは完全にロベルト・イエルサリムズチー「のLuaでのプログラミング」の本に記載されています。ここに完全な例と説明のあるリンクがあります。https://www.lua.org/pil/29.1.html

関連する問題