重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

電子書籍の厳選無料作品が豊富!

C/C++とLua言語で開発しています。

メインはC/C++言語でつくっていてて、補助的なスクリプト部分はLuaです。
そこで、たとえば、F1キーを押したらLuaのスクリプトAを起動するとします。
そしたら、LuaのスクリプトAが処理され、またC/C++に処理がもどってきます。
そのあと、また別の機会にF1を押したら、前回のLuaスクリプトAの
処理で使用した変数を保持したままの状態から、再度Luaスクリプトを
実行したいのです。
グローバル変数を使って実現しようとしましたが、うまくできませんでした。

ファイル:hoge.lua
[START]

_G[switch] = 0;

if _G[switch] == 0 then
_G[value] = 100;
end

_G[value] = 120

[END]

と、作ったのですが、2回目以降呼び出しても _G[switch] = 0 をとおるので
どうしても _G[value] = 100 となってしまいます。
したい処理としては、2回目以降の呼び出しで、_G[switch] = 0 とならずに
_G[value] の1回目の処理の結果を保持したままの状態で、処理したいのです。

条件として、F1キー(指定したキー)でLuaスクリプトを呼び出せて、
C/C++言語の方は、処理を続行
処理を続行中にF1キー(指定したキー)を押すと、前回の状態(変数)を保持したまま
Luaスクリプトを処理するというものです。

上の実装した例でいうところでは、_G[value] が 120 の状態でスクリプトを処理したいのです。

どのような実装方法があるのでしょうか?

A 回答 (1件)

c/c++側が引数と戻り値を使って値を保持すればいいのではないでしょうか。

    • good
    • 0
この回答へのお礼

別の実装方法がわかりました
ありがとうございました。

お礼日時:2014/03/27 22:14

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!