忘了说,还的看看 np-activex的代码: http://code.google.com/p/np-activex/
2012/1/22 Qian Hong <fract...@gmail.com>: > 2012/1/21 ZhanLin Shang <shangzhan...@gmail.com>: >> 额......表示对从头开发一个有兴趣,但是相关的技术什么的能否列个详细点的内容出来好参考一下?高中生压力略大啊...... > > 我的水平有限,只能提供一些建议,可能会误导,请自己鉴别 :) > > - 了解npapi插件的工作原理 > * 阅读Mozilla的npapi plugin文档[1] > * 自己写一个win32平台的npapi插件和Linux平台的npapi插件 > * 简单的插件,可以参见npapi-sdk的源代码(for Linux) [2] 和mingw编译npapi插件(for > Win32)的例子 [3] > * 更重要的是npruntime模型的插件,参见 [4] > * 阅读chromium/firefox中有关插件容器的代码 > > - 了解winegcc和winelib的使用 [5] > * 通过winegcc和winelib,可以在Linux下编译出混合win32 api和Linux平台原生api的二进制(ELF格式) > * 理论上,可以混合Firefox(或chromium) for Win 和 Firefox for > Linux的代码,通过winelib编译出既能加载win32 plugin又能加载Linux > plugin的Firefox。不过估计难度不比自己写一个插件容器小,而且后期随着上游的更新,维护的成本会很大 > > - 了解Win32的setparent函数和Xlib的XReparentWindow函数 > > - 了解RPC > > - 自己写一个插件容器,调用自己写的npapi插件 > > - 下载一个CrossOver daily > build版(请注册CrossOver帐号然后发私信给我),根据[6]中的介绍,试用和观察CrossOver > Plugin是怎么实现在Linux native Browser中调用Win32 plugin的。通过CrossOver > Plugin详细的log,可以大概明白工作原理。daily build版的CrossOver > Plugin虽然没有发布代码,但是二进制是unstripped的。 > > 欢迎交流 :) -- Regards, Qian Hong - Sent from Ubuntu http://www.ubuntu.com/ -- ubuntu-zh mailing list ubuntu-zh@lists.ubuntu.com https://lists.ubuntu.com/mailman/listinfo/ubuntu-zh