偶然このラウンジでMFC拡張DLLが非推奨になったとの書き込みを
発見して質問いたします。
私は日常MFCでプログラミングしている還暦を過ぎたプログラマーです。
そういったわけで世の中の目まぐるしい変化についてゆく努力に欠けるところがあり、
浦島太郎状態の感あり。
で、表題の件ですが、Microsoftはどこでその様な事を表明しているのでしょうか?
私の作るソフトは拡張DLLだらけですので。
tomma
大昔の「MFC拡張DLL」とは主に「MFCをスタティックにリンクしたDLL」を
意味することが多かったのですが、これはDLLヘルを避けるためにやむを得ず
使ったテクニックです。
この方法は、現在は非推奨であると認識していたのですが、それを明記してある
公式なページを見つけることができませんでした。
単に、MFCのクラスを継承したクラスを実装し、動的にMFCのDLLをリンクした、DLLは
特に使用に問題はありません。
但し、そのDLLを使用するにはEXE側もMFCを動的にリンクしていることが求められます。
つまりMFCをスタティックにリンクしたEXEはペケというわけですね。
このあたりの説明は下記にあります。まぁやんわりと禁止しているようなニュアンスです
。
https://msdn.microsoft.com/ja-jp/library/h5f7ck28.aspx
仲澤さん、情報ありがとうございます。
MFC拡張DLLを選択してスタティックリンクを選択すると
リビジョンが異なるMFCのライブラリを同一アプリケーションで使うケースが出て
危険なことになりますね。
確かに私も16ビット時代はスタティックにMFCをリンクしていました。
その時代にMFC拡張DLLがあったかどうかは調べておりませんが、
VS6以降の環境を調べてみたところ、ウィザードを使ってプロジェクトを
作成する限りMFC拡張DLLを選択すると共有DLLになりますから
安全になってるようですね。
昔に比べるとこの辺りはずいぶん楽になりました。
先ほどVC++1.5を久々に起動してみてこんなに不便だったのか
と忘れていた事を思い出しました。
またお邪魔させてくださいませ。