lua から変数を解析すると、lua の動作がおかしくなりました。
C++:
int LuaManager::SetTimer(lua_State *pLua)
{
if (!lua_isstring(pLua, 0)) throw "expected: string";
if (!lua_isnumber(pLua, 1)) throw "expected: number";
std::string callback = lua_tostring(pLua, 0);
double delay = lua_tonumber(pLua, 1);
Timer timer = Timer(callback, delay);
return 0;
}
ルア:
SetTimer("Durp", 10);
行から「0x76C44598 での初回例外: Microsoft C++ 例外: char at memory location 0x00D7F588」が表示されます
std::string callback = lua_tostring(pLua, 0);
コードをデバッグし、例外がポップアップしたときに続行を押すと、ランダム変数が変数にスローされます。についても同様double delay
です。
しかし、私が言うとき:
std::string callback = lua_tostring(pLua, -2);
double delay = lua_tonumber(pLua, -1);
それでも例外は発生しますが、正しい変数がスローされます。