如何让你的软件支持插件技术?

111222 2002-09-30 03:10:07
IE的成功其实不仅仅是因为MS在OS里集成,其插件技术就是比NS好!!各种各样的BAND、各种各样的BAR,连菜单都可以自己定义……

WINAMP为什么在众多播放器中脱影而出?主要就是其对插件的支持好而丰富了软件的功能!

显然让自己的软件支持插件是让软件拥有强大生命力的基础!现在摆在我面前的就是这样的问题了!


如何让自己的软件支持插件??我要的是有功能有界面能良好和主体形成互动的插件啊~

大家好好讨论一下实现办法吧!
...全文
777 139 打赏 收藏 转发到动态 举报
写回复
用AI写文章
139 条回复
切换为时间正序
请发表友善的回复…
发表回复
NowCan 2002-12-16
  • 打赏
  • 举报
回复
主程序对插件的“发现”机制是不太好解决的问题。Winamp可能是用文件遍历吧。我不知道如果放进去一个不是winamp插件的东西进去会如何。

主程序当然要判断了,比如在文件中找某个标志,或者某个约定好的函数。
nbgyf 2002-12-16
  • 打赏
  • 举报
回复
gz
seaboard 2002-12-16
  • 打赏
  • 举报
回复
zuo ge ji hao
:)
julyclyde 2002-10-22
  • 打赏
  • 举报
回复
我谈谈我的看法:
主程序对插件的“发现”机制是不太好解决的问题。Winamp可能是用文件遍历吧。我不知道如果放进去一个不是winamp插件的东西进去会如何。

另外,使用COM还要在系统注册,有些麻烦。如果语言比较单一(C++)可以参考MSDN里那个《From CPP to COM》那篇文章里的技术,使用DLL导出函数和纯虚基类来实现。
glassshark 2002-10-16
  • 打赏
  • 举报
回复
DLL
wuxq 2002-10-15
  • 打赏
  • 举报
回复
gz
microran2000 2002-10-15
  • 打赏
  • 举报
回复
插件是一个由客户端调用的包含二进制代码的服务程序。客户程序和服务程序之间应该遵循相同的约定。这些约定包括客户程序如何找到服务程序,各种类型的服务程序都应该提供一致的接口,包括动态连接库输出函数或者实现COM接口。客户程序应该在找到服务程序后,应该提供回调机制,把控制权交给服务组件。
插件技术没有标准,即使有标准也应该由客户端制定,提供二次开发功能客户程序,也可以称得上支持插件。比如AutoCAD对arx应用程序的支持。这是因为ARX程序(动态连接库)提供了相同的输出函数。Office应用程序支持插件技术,它通过注册编辑表来发现扩展的插件,通过扩展的插件来提供自定义的菜单和工具栏,通过IDTEntension调用组件提供的执行代码。这种插件技术类似于VC6和VC.NET提供的插件技术(Addin).
IE提供的插件技术和Shell(Explorer.exe) 扩展密切相关。包括BHO、工具栏菜单、按扭、BandBar、右击上下文菜单等等在内。这些插件都与注册编辑表和COM有关。
Windows平台的插件技术一般采用单纯的动态链接库或者COM组件,前者采用输出函数,比较简单,易于实现,函数输出名称和参数固定。后者实现COM接口,灵活性强,但是相对比较困难。
插件绑定一般通过文件固定目录查找、配置文件或者注册编辑表实现。

microran2000 2002-10-15
  • 打赏
  • 举报
回复
插件是一个由客户端调用的包含二进制代码的服务程序。客户程序和服务程序之间应该遵循相同的约定。这些约定包括客户程序如何找到服务程序,各种类型的服务程序都应该提供一致的接口,包括动态连接库输出函数或者实现COM接口。客户程序应该在找到服务程序后,应该提供回调机制,把控制权交给服务组件。
插件技术没有标准,即使有标准也应该由客户端制定,提供二次开发功能客户程序,也可以称得上支持插件。比如AutoCAD对arx应用程序的支持。这是因为ARX程序(动态连接库)提供了相同的输出函数。Office应用程序支持插件技术,它通过注册编辑表来发现扩展的插件,通过扩展的插件来提供自定义的菜单和工具栏,通过IDTEntension调用组件提供的执行代码。这种插件技术类似于VC6和VC.NET提供的插件技术(Addin).
IE提供的插件技术和Shell(Explorer.exe) 扩展密切相关。包括BHO、工具栏菜单、按扭、BandBar、右击上下文菜单等等在内。这些插件都与注册编辑表和COM有关。
Windows平台的插件技术一般采用单纯的动态链接库或者COM组件,前者采用输出函数,比较简单,易于实现,函数输出名称和参数固定。后者实现COM接口,灵活性强,但是相对比较困难。
插件绑定一般通过文件固定目录查找、配置文件或者注册编辑表实现。

guoxm 2002-10-14
  • 打赏
  • 举报
回复
gz
dy_paradise 2002-10-14
  • 打赏
  • 举报
回复
我很喜欢COM,尽管我现在的水平还不行,不过,我会努力的,希望与各位高手成为朋友~

xiaoerd@163.net
solarsoft 2002-10-14
  • 打赏
  • 举报
回复
其实dll是可以实现的,
  • 打赏
  • 举报
回复
关注...
cygroup 2002-10-13
  • 打赏
  • 举报
回复
COM,COM,COM,COM,永远是COM!
myb123 2002-10-12
  • 打赏
  • 举报
回复
up
xdspower 2002-10-12
  • 打赏
  • 举报
回复
这个和com技术该有十分多的共通方面的。
其实这个问题的关键是怎么定义一个开放的标准,包括命名,接口,接口实现规范,调用规范,管理规范
这是需要开放和前瞻的眼光和深入的研究的。
flatcd 2002-10-12
  • 打赏
  • 举报
回复
我现在做的程序也要用到插件,打算用com技术实现
前几天在codeproject上看到一篇文章,觉得有点帮助,尤其是结尾关于用com实现
的讨论,url:

http://www.codeproject.com/useritems/PIArchitecture.asp
作者的思路和楼上的均不同,可惜我的程序不能用这种方法.
myb123 2002-10-10
  • 打赏
  • 举报
回复
up
skyie 2002-10-10
  • 打赏
  • 举报
回复
upupup
up up up up
up up up up
up up up up
up up up up
up up upupup
upupupup up
up
up
up
skyie 2002-10-10
  • 打赏
  • 举报
回复
谁教我写插件!我送谁巧克力
seabank 2002-10-09
  • 打赏
  • 举报
回复
何时自己才能达到这个水平啊,盼望啊盼望!
加载更多回复(118)

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧