3

Lua を使用して C++ アプリケーションを拡張しています。私のアプリケーションには、Lua で拡張できるパーツ (例: timer eventui events) がいくつかあるため、パーツごとに新しい状態を作成し、そのパーツに関連するファイルと関数をロードするので、パーツに変更を加えてリロードすることはありません。他の部分に影響を与えます。

現在、いくつかの一般的なファイルを他のすべての部分で共有する必要がある状況にあります。

例:タイマーイベント部分の関数を作成していますが、この関数の情報を変更したい一般ファイルで定義されたオブジェクトがあります。今、私はUIイベント部分にいて、一般ファイルでそのオブジェクトにアクセスするときに、UI部分から行われた変更を含める必要があります。

だから私はそれらのために別の状態を作成することを考え、他の状態のグローバルテーブルの __index を作成して、その中に何かが見つからない場合にこの状態を検索するようにしました:))どうやらそれを作成する方法がわかりません

誰かが私の言いたいことを理解して、その作り方を教えてくれることを願っています?!

4

1 に答える 1

3

lua_newstateまたはで作成された Lua の状態lua_newstateは完全に分離されており、互いに直接通信することはできません。ある状態から別の状態に手動でデータをコピーする必要があります。

ある状態のグローバル テーブルに __index メタメソッドを設定して、別の状態のデータを検索できますが、C で行うか、それを行う関数を Lua にエクスポートする必要があります。

于 2013-07-01T12:06:01.857 に答える