挖井

类库大魔王的挖井日记

挖一口属于自己的井


看PIL一脸茫然

  今天没干什么事,看PIL去了,结果一脸茫然。昨天兴奋地以为用luabind就能把那些问题都解决了,实际上高兴得早了点,而且我也想偷懒到极致,用SWIG生成胶水代码后,再在C++和Lua中进行无差别地使用对象。我现在的应用场景是,在C++中创建了对象,如何在需要的时候,调用Lua脚本的某个函数时,在那函数中能方便地访问到那个对象进行操作。看LuaTinker是可以把C++对象直接映射到Lua脚本的某个全局变量中去,不过我感觉使用全局变量不太好,而且是C++在主动做事。我希望的是这样一种形式,C++在调用Lua函数时,把该对象的指针作为参数传递过去,Lua函数能根据这个参数取得实际的对象,进行操作。在网上又看了些文章,感觉这应该是一种很常用的用法才对,也不知道别人是怎么用的。
  初步的想法是C++创建对象时,用lua的newuserdata来分配空间,在这空间内进行创建。然后有了个地址,即指针,把这对指针和数据保存起来,可能用得到设施有registry和weak table,还有lightuserdata这种东西,但具体怎么用,还没搞明白。看PIL云里雾里,还是得写些代码实验一下。

本文地址:

https://minidump.info/blog/2009/01/e7-9c-8bpil-e4-b8-80-e8-84-b8-e8-8c-ab-e7-84-b6/

感觉本文不错,不妨小额鼓励我一下!
上一篇

新版luabind

  今天偶然看了一下luabind的官方网站,发现1月4日时有0.8版出来了,让我有点惊喜,想想上个版本0.7,是2006年1月时放出的,沉寂了20个月,2008年10月才有0.7.1。中间这漫长的近两年时间,让我都以为这个项目太监了呢。  兴匆匆地把代码下载下来。印象中,网上有人说过luab...…

Lua,Script 全文阅读
下一篇

继续Lua

  又看了一会儿PIL,以及云风blog上的一些文字,以及Lua Manual等等,终于有点眉目了。  完全可以下放权力给Lua,让它来创建wxScintilla对象,然后通过某些方法,把这个对象返回给C++,在C++看来,就是一个lua_touserdata吧。  至于如何保存和索引这个us...…

Lua,Script 全文阅读