スキップしてメイン コンテンツへ

 none
MFCでDLL作成時に、theApp は必要? RRS feed

  • 質問

  • Visual Studio 2008 でMFC DLL を作成しています。

    メインアプリは Win32で WinMain() から始まるプログラムです。

    ウィザードを使って、"TestMfcDll" の名前で作成すると

    // 唯一の CTestMfcDllApp オブジェクトです。

    CTestMfcDllApp theApp;

    のように、theApp が作成されます。

    このtheApp は必要なものなのでしょうか?

    Exportは自前で定義しているので、これが無くても動作しています。

    このtheApp 関連の定義をコメントしてビルドすると 100kバイトくらいサイズが小さくなります。

    客先からはプログラムサイズを可能な限り小さくしてほしいとの要望なので削除したいのですが

    どういった弊害がでるのかご存知の方がいらっしゃいましたら教えてください。

     

    また、自前で作成したDLL内のクラスとしては

    CPropertyPage/CPropertySheet や、ブラウザコントロールなども使っています。

    theAppを削除しても問題なく動作しております。

    AfxEnableControlContainer(); などの呼び出しは別でやっています。

    自分の理解では、 theApp はEXE用のクラスであってDLL用ではなく

    DLL用として使う利点としては、static 変数を定義することなしに 初期化/終了処理

    つまりInitInstance() / ExitInstance() などをメンバ関数として定義できることかな?

    と考えています。

     


    kata.
    2010年6月4日 7:41

回答

すべての返信

  • こんにちは、kata. さん。

    MSDN フォーラムのご利用ありがとうございます。
    内容にもよるのかと思うのですが、別のカテゴリ、例えば VC++ などのカテゴリなどのほうがレスポンスを得られやすいかもしれません。
    もし、こちらのカテゴリでレスポンスがしばらくつかないようでしたら、移動しますね。
                                                                               
    マイクロソフト株式会社 フォーラム オペレーター 山本 春海

    2010年6月4日 8:49
    モデレータ
  • 山本さん、アドバイスありがとうございます。

    移動するようにいたします。


    kata.
    2010年6月4日 9:04
  • 移動済みですので返答される方は以下のスレッドでお願いします。
    http://social.msdn.microsoft.com/Forums/ja-JP/vcgeneralja/thread/919c6f38-af36-4e4e-aa92-e4cd20e77daf
    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    2010年6月4日 15:31
    モデレータ