一般的plugin都是定义好接口的dll文件,主程序通过动态调用dll来实现plugin的效果。只要拿到接口说明,和编写一般的dll没有什么区别,winamp的plugin接口应该在它的网站有得当

解决方案 »

  1.   

    Firing_Sky Is Right 我用delphi就写了一个:)
      

  2.   

    这里有Winamp Plugin设计的Delphi接口
    http://www.midatech.com/csdn/tools/SDK_Lib/index.htm
      

  3.   

    sintony问了一个我很想问的问题
    前面几位大虾回答的还有点简单,偶就顺着
    你们的思路问下去了,相信大家都用过QUICK VIEW PLUGS
    它对文件格式的支持,是怎么实现的呢?是QUICK VIEW
    为各种文件格式的DLL文件写了不同的接口,还是现在
    有什么相同的接口,这种文件格式的即插即用的效果
    跟COM又有什么关联,几位大虾如果明白,还请明示
    如果对200分不满意,小弟愿意给大家再送200
      

  4.   

    调用Dll固然简单,但像Winamp的Plugin事先不知有几个Plugin,实现什么功能,调用什么函数,如何处理呢?
      

  5.   

    在Plugins内加入特定的格式,放在一定地方,例如Application\PlugIns
    程序启动时搜索该目录并检查每一个文件。
    比如说:你的PlgIns后缀定义为.mmm,用文件名描述功能,或者在程序头
    的描述里加入功能描述。
      

  6.   

    Winamp的所有Plugin的dll都有同样的接口,放在指定的目录下,使用时通过搜索此目录来获得plugin的列表
      

  7.   

    关于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\...下
      

  8.   

    我很赞同geofee的看法:使用COM技术。
    要知道功能强大的许多东东都是用COM技术实现的,如DirectX,所有的ActiveX控件,etc.
      

  9.   

    上次具体的例子在:
    \DEVSTUDIO\VC\SAMPLES\SDK\OLE\MFRACT
    目录下
    是ms在1992开始用ole(com技术的前期)时编写的,应该好懂。
    类似于一般的dll,又带点 com 的意思!
    sintony,觉得怎样?
      

  10.   

    又:
    http://www.microsoft.com/MSJ/0797/snapins.htm
    有一篇关于用 com 来做plug in的文章
     "Create Apps That Are Easily Extensible with Our Smart "Snap-Ins" Methodology"
    比较实用。
      

  11.   

    嘿嘿,还有一些,自己查吧
    key: snap-ins, plug-inswww.pcmi.net/mfc
    www.codeguru.com
    www.codeproject.com
    ect.
      

  12.   

    关于QuickView,可参看Visual C++ 6.0 MSDN例子中SAMPLES\VC98\SDK\WINUI\SHELL\FILEVIEW
      

  13.   

    如果做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。