MFC拡張DLLは非推奨? – プログラミング – Home

通知
すべてクリア

[解決済] MFC拡張DLLは非推奨?


tomma
 tomma
(@tomma)
ゲスト
結合: 9年前
投稿: 2
Topic starter  

偶然このラウンジでMFC拡張DLLが非推奨になったとの書き込みを
発見して質問いたします。
私は日常MFCでプログラミングしている還暦を過ぎたプログラマーです。
そういったわけで世の中の目まぐるしい変化についてゆく努力に欠けるところがあり、
浦島太郎状態の感あり。

で、表題の件ですが、Microsoftはどこでその様な事を表明しているのでしょうか?
私の作るソフトは拡張DLLだらけですので。

tomma


引用未解決
トピックタグ
仲澤@失業者
(@uncle_kei)
Prominent Member
結合: 4年前
投稿: 828
 

大昔の「MFC拡張DLL」とは主に「MFCをスタティックにリンクしたDLL」を
意味することが多かったのですが、これはDLLヘルを避けるためにやむを得ず
使ったテクニックです。
この方法は、現在は非推奨であると認識していたのですが、それを明記してある
公式なページを見つけることができませんでした。

単に、MFCのクラスを継承したクラスを実装し、動的にMFCのDLLをリンクした、DLLは
特に使用に問題はありません。
但し、そのDLLを使用するにはEXE側もMFCを動的にリンクしていることが求められます。
つまりMFCをスタティックにリンクしたEXEはペケというわけですね。
このあたりの説明は下記にあります。まぁやんわりと禁止しているようなニュアンスです

https://msdn.microsoft.com/ja-jp/library/h5f7ck28.aspx


返信引用
tomma
 tomma
(@tomma)
ゲスト
結合: 9年前
投稿: 2
Topic starter  

仲澤さん、情報ありがとうございます。

MFC拡張DLLを選択してスタティックリンクを選択すると
リビジョンが異なるMFCのライブラリを同一アプリケーションで使うケースが出て
危険なことになりますね。

確かに私も16ビット時代はスタティックにMFCをリンクしていました。
その時代にMFC拡張DLLがあったかどうかは調べておりませんが、

VS6以降の環境を調べてみたところ、ウィザードを使ってプロジェクトを
作成する限りMFC拡張DLLを選択すると共有DLLになりますから
安全になってるようですね。

昔に比べるとこの辺りはずいぶん楽になりました。
先ほどVC++1.5を久々に起動してみてこんなに不便だったのか
と忘れていた事を思い出しました。

またお邪魔させてくださいませ。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました