老板突然提到,我以前没写过,所以……

解决方案 »

  1.   

    Plugin 是扩展主应用功能的一种机制,DLL 是实现 Plugin 机制的一种手段。你可以参考一下我的这篇东西
    http://www.csdn.net/Develop/read_article.asp?id=13912其实做 Plugin 最关键的是定义一种扩展性好的,安全的的结构跟规范。插件这个概念很广,不一定非要用 DLL 来实现插件。
      

  2.   

    Plugin 是为未知的功能预留接口,DLL是已有功能的实现。
      

  3.   

    那除了DLL,还有其他哪些实现方式?
      

  4.   

    简单而现实来说,Plugin一般使用DLL实现,之所以叫Plugin
    要求用户动态加载,系统能在没有这个DLL的时候正常运行,
    也能随意替换,增加同类的DLL
    所以DLL的输出函数接口要求非常精简而固定
      

  5.   

    Plug-ins 与辅助程序
        Web的流行促使各种各样的数据涌上Internet,而数据的种类越多,对浏览器处理能力的要求就越高。为了支持更多种类的数据,浏览器软件被迫越做越大,却仍然有着这样那样的功能缺陷。
        在早期,人们通过设置浏览器选项,可以把浏览器不能处理的数据交给指定的应用程序,比如点击一个wav文件的链接,就自动打开Windows的录音机程序来播放它。这些用来补充浏览器功能的应用程序就称为辅助程序。使用辅助程序的缺点在于,它们是独立于浏览器的软件,其功能往往超出浏览的需要,在客户端安装大量的辅助程序是十分浪费的。尤为重要的一点是,辅助程序无法与浏览器集成,对它们的调用将影响浏览器的界面,这对于一个编程“人性化”的时代是不适宜的。
        而Plug-in则恰恰相反:它是DLL的一种形式,调用方式是标准化的;它只负责完成有限的功能,并不去重复实现浏览器已经实现的界面和功能;它与浏览器完全集成,一个Plug-in对象可以作为页面的一个部分嵌入Web,从而保持浏览器界面的统一。操作系统是浏览器依附的基础,而浏览器又是Plug-in赖以运行的平台;为浏览器开发Plug-in,就好比是为操作系统开发应用程序,只不过各自所属的应用层面不同罢了,而Plug-in本身也近似于一个有核心而无外壳的、简版的辅助程序。
        “剑长三尺,用锋一寸”,如果说辅助程序是一柄剑,那么Plug-in就是去掉剑柄、护手和剑身的“锋”。为浏览器设置辅助程序,就像古代日本的武士,要携带各种长短的刀剑才能应付不同的情况;而装配了Plug-in的浏览器则像集成了多功能的“瑞士军刀”,Plug-in这个“锋”本身不能单用,但一旦连上了浏览器提供的其他部分,就是最有用的神兵利器。Plug-in(接插件)就是用来帮助浏览器处理特殊类型数据的小程序,它们运行在客户端,为服务器分担了大量的数据处理工作,减轻了网络的负担。Plug-in扩展和补充了浏览器的本地能力,扩充了可在线发送的内容的类型。事实上,只要新类型的开发者或用户能够提供相应的Plug-in,则浏览器可以在安装了这些Plug-in以后获得无限的扩展能力。所以,Plug-in技术缓解了“网络用户日益增长的对Web功能的需要和落后的通信协议之间的矛盾”,把浏览器软件从永无休止的版本更新的噩梦中解救出来。
        Plug-in不是完整的程序,而只是可以由浏览器适时调用的代码段。从技术上看,Plug-in是DLL(动态链接库)的一种形式。DLL含有不能独立运行的代码,但这些代码可由另一程序调用,而Plug-in就是基于浏览器API(应用编程接口)的、专为浏览器设计的DLL。当然,Plug-in是平台相关的,必须为各种操作系统下不同的浏览器平台提供各自的版本。
        对用户而言,Plug-in是透明的。当浏览器启动时,会检查并记录当前已经安装的Plug-in及其所对应的MIME(多用途Internet邮件扩展)文件类型,一旦浏览到的Web页面中包含有这些类型的数据,浏览器就调用相应的Plug-in来处理它;而当离开这个页面时,Plug-in会自动卸载以释放出系统资源来。安装在客户机上的Plug-in平时并不出现,只有在浏览器用得着它的时候才适时地出现,使出浑身解数弥补浏览器的不足 
    MFC(Microsoft Foundation Class)依靠C++的面向对象特性,提供给程序员预建的对话框、控制和数据关系,及其他关键编程工具。MS VC++ 4.0 Appwizard可以完成创建编写Plug-in所需文件(Plugin.cpp、plugin-rc)的工作。
    Plug-in简化了开发过程,因为开发者可以凭借浏览器现有的功能棗这种功能已经随着浏览器与操作系统的融合而日益强大棗仅仅编制实现某种新的功能的代码,而不是整套新软件,就可以很快在Web上推广这种应用。现在,Plug-in已经使Web能够支持实时音频、视频和多媒体演示文件,以及包括Microsoft Office组件在内的各种电子表格和字处理器文件,甚至像虚拟现实和终端通信这样的功能也得到了实现。越来越多的功能正在添加进Web大家庭,网络世界每天都在出现新的面孔。
        应用程序开发者高兴,因为降低了成本;内容开发者高兴,因为有新的数据格式可用;用户高兴,因为Web有了新的用途;浏览器厂商也高兴,因为他们的产品由于别人的努力而变得更强大有用:人人都是赢家。
        当然,黑客和病毒制造者也高兴,因为Plug-in给系统安全提出了新的问题。Plug-in对数据库的存取、客户机Cookie文件的操作等功能的实现,对用户而言是机遇,也是挑战。由于在使用Plug-in之前,必须将其全部存储到本地系统,所以在一个安全性要求较高的系统上安装Plug-in,必须确信Plug-in的开发者和提供Plug-in的服务器都是可信的。
        展望未来,当浏览器与操作系统达到深度融合,Web成为计算机世界的通用界面,也许应用程序将可以拔高到接插件的层面上,则Plug-in有望成为未来应用编程的标准模式。凭借着Web的壮大,作为应用程序的浏览器在插足操作系统的位置,而Plug-in就开始抢占应用程序的地盘。在计算机的历史上,这种逻辑层面的提高如自然语言取代机器语言、图形用户界面抛弃字符界面,都带来了应用水平的飞跃;可以预见,历史又将在另一个层面上重演,而领衔的主角将是Web、浏览器,以及Plug-in。
      

  6.   

    plug-in似乎已经落伍,基于com的activeX是正道
      

  7.   

    这里很清楚的
    http://www.yesky.com/20010409/168706.shtml