关于编写Plugin

sintony 2000-02-23 11:47:00
如何为Winamp编写Plugin,及如何编写类似Winamp可以插入Plugin的程序。
望高手指点此概念。
...全文
583 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
flywhc 2000-07-24
  • 打赏
  • 举报
回复
如果做WINAMP的PLUG-IN,去
http://www.winamp.com/nsdn/winamp2x/dev/plugins/
查阅、下载SDK。

基本思想是做个DLL,传递一个结构给WINAMP,结构里有一些CALLBACK函数指针,
当WINAMP播放时会调用你的CALLBACK函数。
而播放动作和播放列表的控制由消息控制,比如你的DLL postmessage给WINAMP
一个WM_WA_IPCPLAY就能让它播放了。WM_WA_常数在winamp\frontend.h里
而WINAMP的HWND由FINDWINDOW函数搜索类"winamp1.x"得到。

如果你要做PLUG-IN的应用程序,规定一个你自己的DLL调用协议即可,用LOADLIBRARY
装载各PLUG-IN。
QJW 2000-03-06
  • 打赏
  • 举报
回复
关于QuickView,可参看Visual C++ 6.0 MSDN例子中SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW
geofee 2000-03-06
  • 打赏
  • 举报
回复
嘿嘿,还有一些,自己查吧
key: snap-ins, plug-ins

www.pcmi.net/mfc
www.codeguru.com
www.codeproject.com
ect.
geofee 2000-03-06
  • 打赏
  • 举报
回复
又:
http://www.microsoft.com/MSJ/0797/snapins.htm
有一篇关于用 com 来做plug in的文章
"Create Apps That Are Easily Extensible with Our Smart "Snap-Ins" Methodology"
比较实用。
geofee 2000-03-06
  • 打赏
  • 举报
回复
上次具体的例子在:
\DEVSTUDIO\VC\SAMPLES\SDK\OLE\MFRACT
目录下
是ms在1992开始用ole(com技术的前期)时编写的,应该好懂。
类似于一般的dll,又带点 com 的意思!
sintony,觉得怎样?
sintony 2000-03-03
  • 打赏
  • 举报
回复
请高手关注此问题,就这样打分我不甘心。
rabbit 2000-03-01
  • 打赏
  • 举报
回复
关注
sintony 2000-02-25
  • 打赏
  • 举报
回复
调用Dll固然简单,但像Winamp的Plugin事先不知有几个Plugin,实现什么功能,调用什么函数,如何处理呢?
Firing_Sky 2000-02-25
  • 打赏
  • 举报
回复
Winamp的所有Plugin的dll都有同样的接口,放在指定的目录下,使用时通过搜索此目录来获得plugin的列表
mainroad 2000-02-25
  • 打赏
  • 举报
回复
在Plugins内加入特定的格式,放在一定地方,例如Application\PlugIns
程序启动时搜索该目录并检查每一个文件。
比如说:你的PlgIns后缀定义为.mmm,用文件名描述功能,或者在程序头
的描述里加入功能描述。
DragonCheng 2000-02-25
  • 打赏
  • 举报
回复
关注
redoak2000 2000-02-25
  • 打赏
  • 举报
回复
我很赞同geofee的看法:使用COM技术。
要知道功能强大的许多东东都是用COM技术实现的,如DirectX,所有的ActiveX控件,etc.
geofee 2000-02-25
  • 打赏
  • 举报
回复
关于Plugin有两种:
1。编写Plugin的主程序(Client)2。编写Plugin程序(Server)
关于Plugin原则:
1。由编写Client程序的同志规定接口,并提供 xxx.h和解释
2。Plugin程序只能实现部分单独的功能,不要什么都作`Plugin
编写Plugin程序(Server)方法有两种:
1。用一般的dll
这时编写的dll文件一定要放在Client程序指定的目录下(如photoshp),Client程序通过收缩找到并载入。
2。用com编写DLL
这时的dll只是实现Client程序的某些接口。通过DLL的注册,在注册表中注册某个指定的分类(Cat.)下,Client程序通过收缩注册某个指定的分类(Cat.)找到他所有的实现接口的插件。比较繁!还是用一般的dll好!

在vc的例子中有一个类是于一般的dll,又有一些类是com的东东。可以看看,叫什么fractor(分形,单词可能有错!:( ) 在 \sdk\...下

kxy 2000-02-24
  • 打赏
  • 举报
回复
Firing_Sky Is Right 我用delphi就写了一个:)
zdg 2000-02-24
  • 打赏
  • 举报
回复
这里有Winamp Plugin设计的Delphi接口
http://www.midatech.com/csdn/tools/SDK_Lib/index.htm
mikew 2000-02-24
  • 打赏
  • 举报
回复
sintony问了一个我很想问的问题
前面几位大虾回答的还有点简单,偶就顺着
你们的思路问下去了,相信大家都用过QUICK VIEW PLUGS
它对文件格式的支持,是怎么实现的呢?是QUICK VIEW
为各种文件格式的DLL文件写了不同的接口,还是现在
有什么相同的接口,这种文件格式的即插即用的效果
跟COM又有什么关联,几位大虾如果明白,还请明示
如果对200分不满意,小弟愿意给大家再送200
Firing_Sky 2000-02-23
  • 打赏
  • 举报
回复
一般的plugin都是定义好接口的dll文件,主程序通过动态调用dll来实现plugin的效果。只要拿到接口说明,和编写一般的dll没有什么区别,winamp的plugin接口应该在它的网站有得当

16,466

社区成员

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

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

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