您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > 3.2 firebreath---创建plugin插件
一、创建新的plugin(插件)1)打开cmd,win7下最好用管理员方式打开2)转到firebreath的根目录cdC:\firebreath3)运行fbgen.pyPython27\python.exefbgen.py输入需要输入的东西PluginName:插件名称PluginIdentifier:插件标识符PluginPrefix:插件前缀PluginMIMEtype:插件的MIME类型PluginDescription:插件描述PluginhasnoUI:插件没有用户界面CompanyName:公司名称CompanyIdentifier:公司标识符CompanyDomain:公司领域完成之后在firebreath根目录下会产生一个projects文件夹,里面就是刚刚建立的工程的源文件了。此处输入的PluginName为“Demo”。4)创建工程参考路径C:\firebreath\下可以创建的vs版本可以创建vs2005、vs2008、vs2010等,需要安装对应的vs版本,如果我们电脑上已经安装了vs2008,则可以输入prep2008.cmd。查看我们的文件目录,发现工程已经生成。“C:\firebreath\build\projects”目录下“C:\firebreath\projects”目录下注意:第一点,vs版本的选择,如果你选择了vs2008,那么以后都只能选择vs2008,如果想要更换为vs2010,则需要删除“C:\firebreath\build\projects”和“C:\firebreath\projects”两个目录下的文件,然后再按上述步骤,只是将prep2008.cmd命令更改为prep2010.cmd,当然你得安装相应版本。第二点,创建新的工程时,总会重新构建所有工程中的部分文件,我只观察到“C:\firebreath\build\projects\face\gen\FBControl.htm”这个文件会被修改,因为这个文件时用于我们测试插件使用,所以一般情况下,我们会修改该文件,但是每次输入prep2008.cmd就会将所有工程中的该文件重新生成为默认文件。所以,我的建议是在创建新的工程时,将该文件备份。5)运行完毕就创建好工程了,在firebreath根目录下的build文件夹下面会生成很多文件,其中有一个FireBreath.sln就是我们熟悉的VS解决方案文件了。双击这个文件就可以用VS打开这个解决方案了。如下图:不过,我们一般不会打开这个解决方案,而是直接打开创建的插件工程。“C:\firebreath\build\projects\Demo”文件下双击打开“Demo.sln”将Demo设为StartUpProject。然后生成解决方案。第一次构建时,花费的时间有点长,所以需要耐心等待。完成界面如下。整个过程完成之后会在“C:\firebreath\build\bin\Demo\Debug”下面找到npdemo.dll,这就是我们生成的plugin了。我们可以查看npDemo.dll导出函数NP_GetEntryPointsNP_InitializeNP_ShutdownDllCanUnloadNowDllGetClassObjectDllInstallDllRegisterServerDllUnregisterServer其中NP开头的都是NPAPI浏览器需要的,并且NPAPI规定插件dll或so的名字必须为np开头,否则浏览器不认。Dll开头的是ActiveX插件需要的,也就是COM里面常见的导出函数。在目录“C:\firebreath\build\projects\Demo\gen”可以找到FBControl.htm文件,这个就是我们这个plugin的测试页面了,当然你也可以自己编写测试页面。在运行测试页面之前需要对插件进行注册。Windows下:管理员运行cmd,切换到需要注册插件路径C:\firebreath\build\bin\Demo\Debug后,输入regsvr32npDemo.dll或者直接输入regsvr32C:\firebreath\build\bin\Demo\Debug\npDemo.dll选择通过注册。下面为注册成功界面。我们同时可以查看注册表中情况。在“[HKEY_CURRENT_USER\Software\MozillaPlugins\optimais.com/Demo]”下然后我们再次运行“C:\firebreath\build\projects\Demo\gen\FBControl.htm”IE浏览器FireFox浏览器这样,这个plugin就创建完毕了。此处只是在框架下完成了插件的创建,插件中所有的功能都是默认的,我们并没有做任何修改,也没有实现任何功能。所以此处不是结束,而是开始。下面我们将讲解,如何在插件中实现功能。在讲下面的内容之前,我把我遇到的问题发一下,虽然尝试过,不过问题没有解决。第一个问题,在firebreath框架中使用MFC类库,因为firebreath是非MFC框架,我参考过网上一个文档,讲解在非MFC工程使用MFC,不过我没成功过。第二个问题,如何在控件中添加自己的窗口?也没成功。如果哪位朋友有好的方法,可以分享下。
本文标题:3.2 firebreath---创建plugin插件
链接地址:https://www.777doc.com/doc-4060264 .html