none
MFCで作成したDLL内のダイアログについて RRS feed

  • 質問

  •  

    MFCで作成したレギュラーDLL内のダイアログをWIN32APIで作成したアプリケーションで表示するとき、

    ActiveXコントロールがないダイアログは普通に表示されるのですが、

    ActiveXコントロールを貼り付けたダイアログは表示できません。

    これはどうしてなのでしょうか?

    表示する方法があれば、ご教授お願いします。

     

    開発環境:Visual Studio 2005 Pro VC  OS:WindowsXP SP3

    2009年1月12日 15:13

回答

  • MFCのメッセージポンプを利用せずに、ActiveXコントロールを張り付けたダイアログを使うということでしょうか?

     

    私の知る限り、この条件で実装することはできないと思います。ActiveXコントロールコンテナとして必要となる実装は、MFCの内部のかなり奥深いところでフォローされており、それをレギュラーDLLのレベルで公開していくことはデータ構造的な問題により不可能だと認識しています。

     

    もしかしたらまったく不可能ではないのかもしれませんが、そのための苦労をするとDLLを使うEXEもMFCで作ったほうがいいんじゃない?ということになる気がします。

     

    そうはできない事情もあるのかもしれませんが、少なくともレギュラーDLLでというのはやれるという話も聞いたことがありません。

    2009年1月13日 7:25

すべての返信

  • MFCのメッセージポンプを利用せずに、ActiveXコントロールを張り付けたダイアログを使うということでしょうか?

     

    私の知る限り、この条件で実装することはできないと思います。ActiveXコントロールコンテナとして必要となる実装は、MFCの内部のかなり奥深いところでフォローされており、それをレギュラーDLLのレベルで公開していくことはデータ構造的な問題により不可能だと認識しています。

     

    もしかしたらまったく不可能ではないのかもしれませんが、そのための苦労をするとDLLを使うEXEもMFCで作ったほうがいいんじゃない?ということになる気がします。

     

    そうはできない事情もあるのかもしれませんが、少なくともレギュラーDLLでというのはやれるという話も聞いたことがありません。

    2009年1月13日 7:25
  •  とっちゃん さんからの引用

    MFCのメッセージポンプを利用せずに、ActiveXコントロールを張り付けたダイアログを使うということでしょうか?

     

    私の知る限り、この条件で実装することはできないと思います。ActiveXコントロールコンテナとして必要となる実装は、MFCの内部のかなり奥深いところでフォローされており、それをレギュラーDLLのレベルで公開していくことはデータ構造的な問題により不可能だと認識しています。

     

    もしかしたらまったく不可能ではないのかもしれませんが、そのための苦労をするとDLLを使うEXEもMFCで作ったほうがいいんじゃない?ということになる気がします。

     

    そうはできない事情もあるのかもしれませんが、少なくともレギュラーDLLでというのはやれるという話も聞いたことがありません。

    なるほど、実装はほぼ不可能ですか・・・

    無理なら無理できっぱりあきらめて、EXEのほうもMFCで作りたいと思います。

    EXEをWin32APIで作ってる理由は、単純にMFCよりSDKで作るほうが得意だという理由だけです^^;

    すっきりしたので回答済みとさせていただきます。

    2009年1月13日 8:31