「知らない」のであれば、そもそも
#242305 [srad.jp]
のような議論にはならない :-) のではないかと思いますが
MFC というのは Microsoft Foundation Class という Windows 用の C++ クラスライブラリです。
と、言えば聞こえはいいのですが、数年前の MFC に対する私の印象は「これって Windows API の C++ binding なだけちゃうのん?」でした。
要するに WinMain() の中に Event loop を書く手間が CFrame で代替できるだけではないのか、と
(簡単な画面なら WinMain() 書いて WM_PAINT の時に Windows API 直発行した方が楽ではないかとすら...)。
少なくとも私の周囲で MFC に好意的な人間を見たことがありません。
Windows で C++ な開発をしようとすると、MFC 以外の選択肢がほとんど考えられませんから、事実上強制されるクラスライブラリという点も心象を悪くしている一因かも知れませんが。
グループウェア (スコア:1, すばらしい洞察)
サイボウズとかが台頭する前にいち早くグループウェアに着手したのは
悪くない選択眼だったと思う。
MFC を使わずに高速化とかって胸を張ってたしね。
問題は、Lotus Notes みたいに
再利用性 (スコア:1)
使う時は高速かもしれないが、変更に対しては低速だね。
Re:再利用性 (スコア:1)
MFC って 2.5~3.0 の頃遊んでましたけど、お世辞にも生産性の高いクラスライブラリだとは思えなかったんですが (Athena Widget やら Motif といい勝負というか、競り負けてるというか。まぁ、C と C++ を単純比較するのは反則ですが)。 もっとも、今時の 6.0 はどうだか存じませんので、現役 MFC 屋さんのフォロー希望です。
Re:再利用性 (スコア:2, 参考になる)
s/2.5~3.0/2.5 or 3.2 (ちょうど Win16~Win32 の端境期)/
もう一つ、MFC の名誉のためにフォローしておきますと、MFC + AppWizard でできるアプリケーションと同程度に「綺麗な画面」を Xaw で作る事は拷問です (少なくとも私にとっては ^^;)。
確か、当時 Borland [borland.co.jp] に Object Windows Library という MFC 対抗馬もあったはずですが、私は使ったことがありませんのでどこに逝ったのか不詳です。 ...と思ったらこんなところ [sourceforge.net]で余生をおくっておられるようで...。
Re:再利用性 (スコア:1, 参考になる)
Re:再利用性 (スコア:2, 参考になる)
C++BuilderやDelphiのVCLのような『統一性』はありません。
クラス毎に「使い方」を暗記しなければならないので非常にめんどいです。
# 最悪なのがDBとの連携で…
# VCLだとコード書かないで済むのに.
notice : I ignore an anonymous contribution.
Re:再利用性 (スコア:1)
DBに関してもCDatabase使う分はまぁそれなりの使い勝手ですね。
統一感が無いという部分についてはまったく同意しちゃいますけど。
Delphiは一番さいしょのヤツから一回バージョンアップ(Ver.2.0?)しただけなのでもう忘れました(笑)
-- yuno
Re:再利用性 (スコア:1)
しかも、堅牢性というか、安定性も文句なしです。
更新・挿入も(中間に余計なモノが挟まらないので)DBMSにSQL文が素直に渡るためデバッグがしやすくていいです。
(オラクルが相手だからかもしれませんが)
# DAOとODBCは嫌いです...何度徹夜させられた事か…
# 結局、OO4OかOCIで作ってます。
個人的な感触としては、MFCを使っても手数は減らないですね。
・普通のウィンドウをGUIで作成できない。
(ダイアログなら作成できるがウィンドウサイズと部品サイズが固定になる。可変にすると部品数分、手間がかかる。)
・画面表示で複数フォントを使用するとリソース管理が大変。
・DLLにリソースを持たせるとアクセスできなくなる場合がある。(リソースIDの衝突などで)
・ランタイムライブラリのバージョンが変化した場合に動くか否か?...神のみぞ知る...
・作成後、MFCの部品を別の部品に変更すると、コードの大半を書き直す必要がある。
同じ親クラスから派生した部品であっても要注意!
部品のインタフェースの統一とか、互換性ってモノをハナから無視しているため、としか思えない。→部品(クラス)の選択は慎重に。
notice : I ignore an anonymous contribution.
Re:再利用性 (スコア:1)
MFC が何かは知らないが、ライブラリを使うより直接叩いた方が効率が高いという事か。それともライブラリの中では比較的低いのか。
Re:再利用性 (スコア:1)
と、言えば聞こえはいいのですが、数年前の MFC に対する私の印象は「これって Windows API の C++ binding なだけちゃうのん?」でした。 要するに WinMain() の中に Event loop を書く手間が CFrame で代替できるだけではないのか、と (簡単な画面なら WinMain() 書いて WM_PAINT の時に Windows API 直発行した方が楽ではないかとすら...)。
少なくとも私の周囲で MFC に好意的な人間を見たことがありません。 Windows で C++ な開発をしようとすると、MFC 以外の選択肢がほとんど考えられませんから、事実上強制されるクラスライブラリという点も心象を悪くしている一因かも知れませんが。
Re:再利用性 (スコア:1)
結論を述べる事から逃げているだけの文章だな。"簡単な" ものならわざわざ利用するなど考えない。
> MFC 以外の選択肢がほとんど考えられません
Re:再利用性 (スコア:1)
>生のAPIの方が楽だとおっしゃるなら、「C++ + API直発行」でよろしいのでは?
私は、APIを直接たたくことがそんなにやりたいとは思わないけど、
MFC以外(OWLは事実上なくなってるのかな)がもっと気楽に選べるといいのになぁ
って思うことはありますね。
いろーんなフレームワークが市場にいろいろ出ててそれぞれが活気があるっていう
世界がいいなぁ。
-- yuno
Re:再利用性 (スコア:0)
> 簡単な画面なら 、、、 直発行した方が楽
この後「思う」と言う言葉が保管されるはずなのだが。「楽」なんて言い切ってはいない。よって、API "簡単な" ものならわざわざ利用するなど考えない。
「複雑な仕様」を簡素に扱うのがMFCです。
「簡単な画面」はクラスライブラリを使わない方が「簡単に作れる」なんて事は言ってない。これもMFCが敷居を下げることが出来るはずなのに、生API使った方がいい"気がする"っていう意見なんだと思うのですが。
MFC と 生のAPI はどっちもどっちだが、少なくとももうちょっと出
Re:再利用性 (スコア:0)
WindowsのAPIはもともと結構整然としていると思うので、薄いラッパで充分です。
むしろ全然別の概念を持ち出されて、あれもこれも覚えることが増える方が御免。
>それより、代替クラスライブラリ一つでも教えて欲しいね。
VBでも使えば?
Re:再利用性 (スコア:0)
主観でいうと、MFCのより某ランドのやつの方があきらかに設計はきれいで整然としていたと思うよ。
MFCがマイクロソフトが出していなかったとしたら、MFCを積極的には使いたいとは思わなかったと思う。
(こんな話って主観で充分でしょ?)
Re:再利用性 (スコア:0)
Re:再利用性 (スコア:0)
今は亡きMac版VC++&MFCなんてのも…。
Re:再利用性 (スコア:0)
そんなものあったのか?
Re:MFC (スコア:0)
いったいどんな物だったのですか?
Re:再利用性 (スコア:0)
.. Borland C++Builderに付いてるMFCのソース見ても"_MAC"とかMac用のシンボルがあったりして笑いましたが。