Chinaunix首页 | 论坛 | 博客
  • 博客访问: 313060
  • 博文数量: 174
  • 博客积分: 3061
  • 博客等级: 中校
  • 技术积分: 1740
  • 用 户 组: 普通用户
  • 注册时间: 2006-05-04 22:43
文章分类

全部博文(174)

文章存档

2011年(54)

2010年(14)

2009年(30)

2008年(26)

2007年(27)

2006年(23)

我的朋友

分类: WINDOWS

2011-06-08 10:10:42

这段时间使用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个问题。




阅读(500) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~