2012-01-02 20 views
2

私はLuaにロードするC DLLを持っています。エラーが発生すると、DLLはlua_error()を呼び出します。 Luaでは、エラーの説明付きのメッセージボックスが表示されます。これをより良く扱う方法はありますか?ルアの側に何か試行錯誤していますか?LuaでのLuaの処理方法C

答えて

5

あなたのLuaスクリプトがerrorと呼ばれていた場合とまったく同じように処理されます。 Luaエラー(C/C++またはLuaのいずれか)を発行する可能性のある関数を呼び出し、単に停止するのではなくエラー状態を処理したい場合は、pcallを使用して関数を呼び出す必要があります。

+0

実際には動作していないか、間違っていました。私が持っている:PCALL(デシベル:NROWS() "TEST1 SELECT * FROM")ならば、 \tは、( "エラーなし")を通知していない他の \tは( "エラー")を通知し エンド – user441521

+0

をして、私はDBからエラーを取得する上で:DLLから来ているnrows()。私は "エラー" msgを受け取ると予想していたが、私はDLLから来ているエラーメッセージを得た。私はLuaJITを使っていますが、それは問題ではないと思います。 – user441521

+1

@ user441521:これは 'pcall'の使い方ではありません。 'pcall'への適切な方法は、' pcall(db.nrows、db、 "SELECT * FROM test1") 'です。 'db.nros'と呼ぶ関数を引数に渡します。注意: 'x:y()'構文は 'x.y(x)'と同じですので、最初のパラメータは 'db'です。 2番目はSQL文字列です。 –