我有一个问题,我想这一定很常见,你们中的大多数人都会面对它。我在 lua 中编写了一个程序,比如 main.lua,它在接收到关键事件时应该修改坐标并显示几何图形。此 lua 代码调用 reg.c,它在其中进行注册。现在在 reg.ci 中有一个函数引擎,它接收按下的键并将其传递给负责键处理的 lua 函数。但是当key事件到来时,lua代码完成注册并退出,因此来自engine()的调用变成了非法的内存访问,导致了segmentation fault。
另外我想我们不能让 lua 调用挂在 reg 函数中,并从其他地方调用引擎函数。
那么应该是什么解决方案,请指导我完成这个。
@jacob:这是我想要实现的原型:
function key_handler() //this function will get the latest key pressed from some other function
{
draw.image();
draw.geometry();
...
...
while(1)
{
//draw Points until some condition goes wrong
}
}
现在,一旦进入 key_handler,当他忙于绘制点时,除非并且直到出现故障情况,我才能收到按键直到那个时候。
我希望这个解释更简单,并表达了我的观点,并有助于其他人理解这个问题。我真的很抱歉,但我不擅长表达或让别人理解。
还有一件事,我已经按照 C 语法来解释了,但是这完全是在 lua 中实现的