使用lua_pushstring时发生错误(Lua+iOS)。

============== 开发环境: MacOS 10.6 SnowLeopard iOS SDK 5.0 MacOS X的FreePascal 2.6.0 iOS的FreePascal 2.6.0 XCode 4.2 设备: iPad Lua: 对象库=liblua.a(版本5.14) ==============


代码:

A) lua_pushnumber(LuaInstance, 5); B) lua_pushstring(LuaInstance, 'TEST'); C) lua_pushlstring(LuaInstance, 'TEST', 4);


问题: 当我使用变量"B""C",并在我的iPad上运行该项目时,应用程序启动后会闪烁并关闭,并显示以下错误:

(iPad)控制台日志中的错误:

Exited with code: 217 Application 'demo1' exited abnormally with exit status 217

```

对于变体"A",一切正常,应用程序正常启动。

有趣的是,当我在模拟器上编译和启动时,所有变体("A"、"B"、"C")都可以正常工作,没有崩溃。

有人知道为什么应用程序在设备上的lua_pushstring处崩溃吗?

也许有些人曾经在c++中解决过这个问题,没有用到freepascal。 请帮帮我。

点赞
用户1551374
用户1551374

我注意到,当我在函数lua_pushlstring中添加printf时,问题得到了解决。为什么?

LUA_API void lua_pushlstring (lua_State *L, const char *s, size_t len) {
  lua_lock(L);
  luaC_checkGC(L);
  printf ("Test= %s ", s);
  setsvalue2s(L, L->top, luaS_newlstr(L, s, len));
  api_incr_top(L);
  lua_unlock(L);
}

也许在链接liblua.a时发生了地址违规?

2012-07-27 13:06:06