今天试着在项目的lua5.1里用coroutine, 想“优雅的”解决对话框弹出的问题, 让它有返回值。
但遇到lua: attempt to yield across metamethod/C-call boundary。 在网上查了查,没弄好,就不弄了。(对工作没热情的后果就是这样,我要是爱它,我会把整个项目换成lua 5.2,5.3)
下面是几篇文章,将来备用。还有自己的一点总结:
http://blog.codingnow.com/2012/06/continuation_in_lua_52.html
http://lua-users.org/lists/lua-l/2008-05/msg00181.html
http://stackoverflow.com/questions/8459459/lua-coroutine-error-tempt-to-yield-across-metamethod-c-call-boundary
http://www.cppblog.com/kevinlynx/archive/2008/08/12/58636.html
1,有人明确说主线程里yield会出这个错误。云风的博客里给的解释似乎更本质一些。
2,cppblog的那篇文章里,明明写成了一个(它就是为了解决对话框问题),但它的代码我几乎是照搬,嵌入项目里,还是不行。它用的也是5.1。
时间: 2024-11-24 12:21:24