私はC Fuzzy APIを使用しています。ファイルに含まれている汎用モジュールをロードして、mycalculator.luaと言うことができます。これはうまくいきますが、後で別のファイルA.luaを実行しようとすると 'mycalculator'が必要になります。mycalculator.luaファイルがファイルシステム上で再ロードされない限り動作しません。私はそれをシステムにロードし、ファイルシステムにmycalculator.luaを持たずに利用できるようにしようとしています。それは、それを再度ロードせずに定義を保持するための方法はありますか?基本的に私はmycalculator.luaを文字列に変換して実行します。私はmycalculator.luaファイルをファイルシステムに入れたくないので、文字列として渡して、次の文字列に要求することができます。ファイルをロードせずに関数定義をLuaに追加するには?
1
A
答えて
2
単にLuaスクリプトを実行してからLuaモジュールをロードするまでの違いです。 Luaモジュールをロードする場合は、実際にスクリプトと同じようにLuaモジュールをロードする必要があります。require
を呼び出してください。
あなたがLuaを初めて使っているようだから、これを説明してください。あなたはおそらくLuaスクリプトでこのようなコードを見たでしょう:
require 'mycalculator'
これはLuaにとって特別な記述ではありません。それは関数呼び出しです。それのためだけのいくつかの構文糖です:
require('mycalculator')
のLuaの関数はNAME VALUE
構文の代わりNAME(...)
構文で呼び出すことができますが、それはあなただけは一つのパラメータを送信することができます。また、パラメータはリテラル(またはテーブルコンストラクタ)でなければなりません。
CからLua require
関数を呼び出すには、Luaスタックを使用する必要があります。 lua_getfield(L, LUA_GLOBALSINDEX, "require");
を使用してグローバルテーブルから関数をフェッチする必要があります。次に、ロードするモジュールの名前を含む文字列をスタックにプッシュします。次に、lua_pcall
またはそれを呼び出すために関数を呼び出すLua関数を使用します。
関連する問題
- 1. Luaファイルをロードし、関数を実行せずに変数を使用する
- 2. PHPでは、ファイルをロードせずにファイルに行を追加する方法は?
- 3. tolua ++:LuaにエクスポートされたC++クラスにlua関数を追加
- 4. GUIステータスをコピーせずにCL_SALV_TREEにユーザ定義関数を追加することはできますか?
- 5. javascript関数を事前定義せずに別の関数に渡すには?
- 6. エンティティフレームワークにSQLユーザ定義関数を追加する方法は?
- 7. U-Bootでユーザー定義関数を追加するには?
- 8. ループ内に条件を定義する場合は、ループを追加せずに
- 9. PHPは実行せずに関数を定義します
- 10. 設定ファイルを追加せずにプロジェクトをコミット/プッシュする
- 11. ユーザ定義関数のパラメータも追加するには?
- 12. 関数に定義されたリストに追加する
- 13. 素早くluaでファイルにカラムを追加するには
- 14. 依存関係ターゲットにcmake定義を追加するには?
- 15. タイプスクリプト定義ファイルをnpmパッケージに追加するには?
- 16. Luaでjava関数をロード
- 17. URLを再ロードせずにパラメータを追加する方法
- 18. 削除せずにpickleファイルに追加
- 19. PythonでHashMapsの値を追加する関数を定義するには?
- 20. CSVをロードせずにCSVにヘッダを追加
- 21. 定義を提供せずに関数をオーバーライドするのは何ですか?
- 22. phpファイルに関数を追加する未定義関数の例外を呼び出す
- 23. PHPを使用して改行を追加せずにファイルに追加する
- 24. ページを更新せずにボタンにimagegrabscreen php関数を追加する
- 25. 追加要素を定義せずにコンパイル時にenumクラスサイズを取得
- 26. リダイレクトせずにページをロードした後にファイルをロードする
- 27. ロード中にAngularJSファイルを追加する
- 28. Visual Studio Excelアドインにユーザー定義関数を追加
- 29. jQueryでonclickに事前定義された関数を追加
- 30. まずファイルを保存せずにtarアーカイブにファイルを追加します
あなたはその文字列を置く場所が何ですか?文字列はファイルシステム上に魔法のように存在するわけではなく、いつも何らかのストレージが必要です。あなたはA.luaをどのように実行する予定ですか? – kikito