開発中の C++ アプリケーションに Lua を埋め込むことを考えています。私の意図は、Luaを使用して、特定の入力に対して実行する命令操作をスクリプト化することです。c++ プログラムで新しい作業項目を受け取り、詳細を Lua バックエンドに渡し、必要な作業を実行するために Lua が c++ にコールバックし、完成した結果を返します。
関連する主要なデータ構造は大規模です (約 80 以上のメンバー) struct
。私は Lua に (非常に) 慣れていないので、ホスト アプリケーションと埋め込まれた Lua 状態との間でどのように受け渡しできるかわかりません。
これまでのところ、私のオプションは次のように見えます。
a) C++ と Lua との間を行き来するときに、すべての個々のデータ メンバーをスタックにプッシュ/ポップします (面倒に聞こえます)。
b) テーブルを作成して値を入力し、それをスタックにオン/オフします (少しクリーン)。
c)(軽い/重い?)として渡しuserdata
ます(これについては大ざっぱで、必要な操作を照会するためにLua側からアクセスできるかどうか/どのようにアクセスできるかわかりません)。
ガイダンスをいただければ幸いです。