none
自作アプリにプラグイン機能 RRS feed

  • 質問

  • 自作のアプリケーションに、プログラムを追加する、プラグイン機能はどうやって実装すればいいのでしょうか?

     

    MFCでもWin32でも構いません。

     

    Visual Studio 2005 Professionalを使っています。

     

    2007年8月28日 19:10

回答

  • どのような自作アプリでどのような機能をプラグインにしたいのかが

    分かるともっと具体的なアドバイスができると思います。

     

    例として思いついたのは圧縮/解凍ソフトです。

    圧縮形式に応じた圧縮/解凍の処理がDLLにあり、画面を持った圧縮/解凍ソフト

    と呼ばれるアプリはDLLを呼び出しているパターンですね。

    これらは統合アーカイバプロジェクトのページに詳しい説明があります。

     

    他の例としては古いですが、画像表示ソフトのSusieとそのプラグイン。

    画像形式に応じた処理をDLLに分離しています。

     

    あとはプラグインといえばeclipseですかね。

    これはJavaですが。

     

    2007年8月30日 12:55

すべての返信

  • 自分で地道に実装するに一票。

     

    MFCにしろ、Win32APIにしろ、プラグインを簡単に実装できるようなフレームワークは提供していなかったと思います。

    従って、自分でプラグインの仕組みを構築して実装するしか無いでしょう。

    方法は幾つかあると思いますが、フリーソフト等で実装されているプラグインの方式を真似るのも一つの手だと思います。

     

    パッと考えつくのは、Win32APIのLoadLibrary、 GetProcAddress、FreeLibrary等を使ってDLLを動的にロードする方法を使うくらいでしょうか。

    インターフェイス仕様がきちんと決まっていれば、とりあえずこのような実装は可能だと思います。

    プラグインに関してはどんな機能を実現させたいか、そのためにどんなインターフェイスを想定する必要があるかと言った

    仕様の検討にミソがあると思いますのでこの辺は自分で設計するしか無いと思いますよ。

     

    2007年8月29日 5:04
  • http://www.atmarkit.co.jp/fdotnet/practprog/wisearch01/wisearch01_01.html

     

    このサイトなんかどうでしょうか?

    わかりやすく簡単にプラグイン機能を実装する仕組みが解説してあります。

    2007年8月29日 7:43
  • どのような自作アプリでどのような機能をプラグインにしたいのかが

    分かるともっと具体的なアドバイスができると思います。

     

    例として思いついたのは圧縮/解凍ソフトです。

    圧縮形式に応じた圧縮/解凍の処理がDLLにあり、画面を持った圧縮/解凍ソフト

    と呼ばれるアプリはDLLを呼び出しているパターンですね。

    これらは統合アーカイバプロジェクトのページに詳しい説明があります。

     

    他の例としては古いですが、画像表示ソフトのSusieとそのプラグイン。

    画像形式に応じた処理をDLLに分離しています。

     

    あとはプラグインといえばeclipseですかね。

    これはJavaですが。

     

    2007年8月30日 12:55
  • PATIOさん

     

    Vectorでプラグイン機能を持つソフトを探して作者に聞いてみます。

     

    Tronics25さん

     

    .netなら簡単そうですね。そちらも考慮してみます。

     

    C.Johnさん

     

    Susieプラグインが読み込めるソフトもいくつかありますね。

     

     


    2007年8月30日 15:46