我有一個問題,我認爲這個問題一定很常見,而且大多數人都會遇到它。 我已經寫了一個程序在lua中說main.lua在接收關鍵事件時應該修改座標並顯示幾何圖形。 這個lua代碼調用reg.c,在那裏註冊。 現在在reg.c中我有一個函數引擎,它接收按鍵並將它傳遞給負責密鑰處理的lua函數。 但是到了關鍵事件發生的時候,lua代碼就完成了註冊並退出,這樣來自engine()的調用就成爲非法的內存訪問,導致了分段錯誤。Lua中的控制流程
另外我想我們不能讓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,而他正忙,除非和直到發生故障的情況發生時繪製點,直到那個時候,我無法收到按鍵。
我希望這個解釋更加簡單,並且提出了我的觀點,並且會幫助他人理解問題。 我真的很抱歉,但我不善於表達或讓別人理解。
還有一兩件事,我ahve遵循C語法來解釋,但是這是在盧阿完全實現
很難看到你的設置以及你想從你的問題中完成什麼(例如,沒有人知道'reg.c'做了什麼或者應該做什麼,'engine()'也是如此)。請詳細說明,並給出一個最低限度的代碼示例來演示什麼不起作用。 – jpjacobs
@jpjacobs: 我已經更新了這個問題,盡我所能,好心的看你是否可以推薦我解決一些問題 – ashutosh
我試過使用協程,但沒有幫助 – ashutosh