这段时间使用qtwebkit开发需求,发现qtwebkit bridge对c++对象跨越语言边界已经进行了自动处理,作为一名程序员我想了解它内部的具体细节,因为去年做过一个v8的转换,当时是写了很多模板,对各种对象转换,包括自定义对象转换。
这个是v8的c++互操作的一些简单总结
qt中,一般来说直接暴露API 不太推荐或许也做不到,下面会解释; 由于qt本身是OO的,即都是对象,所以在qt中使用webkitbridge() 那么都市将object暴露出去。
为了讲述这个东东,得有一些前提,即最好能有一份qt source,我用的是4.7.2, 具体qt的编译参看
http://blogold.chinaunix.net/u/18544/showart_2534451.html。
先说说API的暴露,我现在还不知道qt中是否有v8 extention这个模式,不过我知道另外一种方式,就是你可以仿照javascript:alert 这个模式来实现一个全局函数。 当然我相信我们也可以实现出一个类似于v8:extention 模式的API暴露,不过由于对象都可以轻松暴露实际上我们没有必要一定要追求暴露API。 完全可以用一个无状态的全局对象来实现这个行为。
所以我们的重点还是放在qt的object 暴露上。。。
1. 对象是如何暴露的
2. 对象的方法是如何暴露的
3. 方法的参数和返回值是如何传递的
4. 对象的生命周期是如何管理的
基本上就是这4个问题。
阅读(530) | 评论(0) | 转发(0) |