none
VC++2010MFCアプリで、「共有dLLでMFCを使用する」から「スタティックリンクでMFCを使用する」に切り替える場合 RRS feed

  • 質問

  • MFCのアプリを共有DLLで作成していたのですが、
    インストールの都合でスタティックリンクに作り替えることになりました

    単純にプロジェクトのプロパティを変更するだけの場合、
    デバッグビルドでは単純に「特定の既定のライブラリの無視」に「nafrxcw.lib;libcmt.lib」を設定するだけでもよかったのですが
    リリースビルドではリンクに失敗するというエラーが大量に発生してしまいました

    単純にプロジェクトのプロパティを変更するだけですむようでしたら、そうしたいのですが、
    単純にライブラリの追加や無視でスムーズにスタティックリンクに移行できないものでしょうか

    新しいプロジェクトを作ろうと思ったのですが
    リソースに画像がいろいろ組み込まれており(プロジェクトのフォルダの中に画像ファイルを配置し、リソースにリンクしています)
    なかなか一筋縄ではいきません

    新しいプロジェクトを作るときのリソースの移行はどうするのが簡単でしょうか

    できればこののままのプロジェクトでライブラリの追加などで済ませたいのですが・・・

    2011年9月10日 10:31

回答

  • MFC ライブラリの DLL を使うようにするのか、スタティックリンクにするのかは、プロジェクトのプロパティの全般のところにある「MFC の使用」のところでオプションを切り換えるだけです。
    # 自分でいろいろといじくっているとすんなりいかないかもしれません。

    なお、C, C++ ランタイムもスタティックリンクにしたい場合、C/C++ の コード生成 にある ランタイム ライブラリ の項目を DLL という文言を含む設定に切り換える必要があります。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    2011年9月10日 11:44
    モデレータ

すべての返信

  • MFC ライブラリの DLL を使うようにするのか、スタティックリンクにするのかは、プロジェクトのプロパティの全般のところにある「MFC の使用」のところでオプションを切り換えるだけです。
    # 自分でいろいろといじくっているとすんなりいかないかもしれません。

    なお、C, C++ ランタイムもスタティックリンクにしたい場合、C/C++ の コード生成 にある ランタイム ライブラリ の項目を DLL という文言を含む設定に切り換える必要があります。


    質問スレッドで解決した場合は、解決の参考になった投稿に対して「回答としてマーク」のボタンを押すことで、同じ問題に遭遇した別のユーザが役立つ投稿を見つけやすくなります。
    2011年9月10日 11:44
    モデレータ
  • 元に戻してスタティックリンクにしてビルドしたらうまくいきました
    最初やったときはリンク失敗しまくったんですが・・・

    ありがとうございました。

    2011年9月13日 15:41