トップページ⇒tech
142コメント44KB

MFCを使うべきか否か

■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。NGNG
MFCを初めて使いはじめましたのですが、困るぐらいノウハウの固まり
なんですね。クラスライブラリというのは得てしてそういうものかもしれ
ませんが....

簡単なプログラムを速く作るのにはよさそうですが、手塩にかけたプログ
ラムを作ろうと思ったら、MFCを使うべきでないという気分になりかけて
います。MFCを使うべきかどうかのガイドラインってみなさんどうされて
います?
0002名無しさん@お腹いっぱい。NGNG
同じようなスレが定期的に立つな。
0003名無しさん@お腹いっぱい。NGNG
めんどくさそうなんでできません。VBから入ったから余計に。
0004ゲイツNGNG
これからはC#の時代だよ!
0005名無しさん@お腹いっぱい。NGNG
>2
そーなのか。で、前回の結論はどんな感じだったの?
0006名無しさん@お腹いっぱい。NGNG
>>1
今年の夏ごろからMFC使い始めました。
最初は、ダイアログベースで遊んでいたのですが、
APIだけで作るのよりはずっと楽だと思いました。

今は、DOC/VIEWを勉強中なのですが、
ダイアログベースで作った物をDOC/VIEWで作り直そうとすると、
DOCの部分に何を書いていいのかわかりません。
0007名無しさん@お腹いっぱい。NGNG
ファイル/データの処理をDOCに書いて、表示処理をViewに書くのが一般的のようだ。
俺はほとんどViewに書く大ばか者ですが・・・
0008名無しさん@お腹いっぱい。NGNG
DOC の Serialize ってのが全然分からん。
良く分からんから自分でメソッド作って CreateFile で普通にファイル開いて入出力してる。
0009名無しさん@お腹いっぱい。NGNG
いつどこが呼び出されてるのかわかりずらいです。
それさえなんとかなれば便利な道具と言えると思います。
0010名無しさん@お腹いっぱい。NGNG
Serialize 最悪。
ファイルの読み書き時に呼び出されるらしいけど、
開いたファイルの中身が空だったりすると呼び出されなかったり。
そういうものなんだろうけど、じゃ空の時はどこで処理すればいいんだ?
ってことになる…
0011名無しさん@お腹いっぱい。NGNG
>>1
GUIなんかのWin32APIべったりなのはMFC
純粋なロジックはそれ以外(STLなりなんなり
つーかんじかしら。
Archive の、心意気は買うけど資料あんのか?あれ。
0012名無しさん@お腹いっぱい。NGNG
MFCのCOM実装はダメダメなのでもうおしまい。
ATLがSTLベースになってDoc/Viewアーキテクチャが実装されて
MFCなみのコントロールラッパがあれば理想。
同じようなスレが立つたびに言っているかもしれん。

さいきんMSからWTLという伏兵もでてきている。
ソースは配布されているが
まともなドキュメントが無いのでよくわからないが
ATLにMFC的な要素を加えたものらしい。
0013名無しさん@お腹いっぱい。NGNG
>>1
今の時代じゃ、MFCよりほかのものを使ったほうが適切な場合がほとんど。
入門用途じゃ絶対におすすめしないし、それなりのもの作れるようになるまでも
手間かかりすぎでダメダメ。

MFCしかない環境なら、心中するつもりで突っ込むべし。
それがいやなら、別のものを探しましょう。

0014名無しさん@お腹いっぱい。NGNG
>>12
WTLってDonutの作者のページで解説してるやつけ?
001512NGNG
>WTLってDonutの作者のページで解説してるやつけ?
Donut? しらないです。
Platform SDKをダウンロードしたらついてきた。
(Platform SDK 全部で650MB近く。T_T;)
ちなみにWTL=Windows Template Libraryだそうです。
WTL用のAppWizardもついている。
001612NGNG
Dount作者のページさがしてみました。
http://hp.vector.co.jp/authors/VA016589/wtl/index.html
これですね、貴重な日本語WTLページだ。感謝
0017名無しさん@お腹いっぱい。NGNG
WTL、面白そうですねぇ。
なによりトレースしやすそうで心強い。

折角だから期待age
0018名無しさん@お腹いっぱい。NGNG
WTLは一応英語で読んでる。
疲れる。
0019名無しさん@お腹いっぱい。NGNG
WTLとC#ってのはまったくちがうのけ?
2000年にリリースされてきたってことは

VJ++WFC -> VC#
VC++MFC -> VC++WTL
VB −> VBNET

MSはこの3本立てを用意しているって事なのかな?
0020名無しさん@お腹いっぱい。NGNG
VB.NETはC#の下請け
0021名無しさん@お腹いっぱい。NGNG
>>19
WTLとC#は同じ会社のものです。
その意味では同じかもな。
0022名無しさん@お腹いっぱい。NGNG
あ〜、話しがどんどんMFCから遠ざかっていく〜(笑)
0023名無しさん@お腹いっぱい。NGNG
WTL落とそうと思ったのにMSのftpにアクセスできない・・・鬱
0024名無しさん@お腹いっぱい。NGNG
このスレのタイトルへの回答としては「否」ということで、
ゆっくりまったりWTLの話しでもしようっか
0025>23NGNG
あれほんとうだ。
> 530 User IEUser@ cannot log in, home directory inaccessible.
なんだ?
0026デフォルトの名無しさんNGNG
ブラウザからじゃなくてftp clientで行ってみな。
0027デフォルトの名無しさんNGNG
ftp://ftp.microsoft.com/developr/platformsdk/
0028デフォルトの名無しさんNGNG
せっかくなんでWTLのスレ作っていいですか?
0029デフォルトの名無しさんNGNG
http://www.microsoft.com/Japan/developer/visualc/techmat/feature/ATLwindowing/

ATLだけど参考になるかも
0030デフォルトの名無しさんNGNG
>>28
いいけど30レスまでは面倒見て育てる事
0031デフォルトの名無しさんNGNG
WTLはレスがそう多くは帰ってこないよ。
多分。
英語の文書ばっかだし。
0032+-*%/NGNG
逆に、他のメディアにいくらでも登場する情報を
あえて2ちゃんで提供する意味ある?
他で調べて不明で、誰もわかる人いないから、
2ちゃんへ来るってのが理想だと思うけど。
003328NGNG
>>30

ATLといっしょにしたらレス増えるでしょうか?
0034名無しさん@お腹いっぱい。NGNG
とりあえず、ここで様子みて
増えるようなら別スレにすれば?
0035デフォルトの名無しさんNGNG
ATLでお勧めのページを教えてください
0036デフォルトの名無しさんNGNG
MFCって具体的にどこが気に入らない?
参考程度に教えてよ。
0037名無しさん@お腹いっぱい。NGNG
>36
MS社員発見!
MFCはSDKで組んだこと無い奴には便利かもしれんがSDKで組んでた奴には色々制限が多いっていうかMFC流のコーディングスタイルに合わせないといけないので面倒臭い。
0038デフォルトの名無しさんNGNG
クラスウィザードからポチッと関数加えたら、すでにその関数の
中にコードが書かれている辺りに、中途半端なクラスライブラリに
悪意としかとれない使い勝手のツールをくっつけてプログラマを
苦しめているとしか思えません、ウヘ。
0039名無しさんi486NGNG
>>38
分かって使えばたいした事なかろう。
どこが苦しいんだかよく分からん。
0040minima@順風満帆NGNG
MFC,分かるまでが異様に大変ですよね。
COMMAND や UPDATE_COMMAND_UI ていうメッセージが謎だったり,
「イベントハンドラ」てのがいつどこで呼び出されてるのかよく分からなかったり,
CCmdUI* て何じゃらほい,だったり,BM_CLICKED だったり。

Windows 以前にオブジェクト指向のオの字も知らないままプログラミングをやってると,
どうしてもトップダウンなコードしか認識できないっていうか,うー,そんな感じっす。

# ええっと,今 MFC の解説書を読んだんですが,スラっと理解できました・・・
# 3〜4ヶ月前はちんぷんかんぷんだったのにな。笑い
0041名無しさん@お腹いっぱい。NGNG
>>40
その解説書の名前おしえて!
おれもよんでみたい
0042名無しさん@お腹いっぱい。 NGNG
>40
おれにもおせーて!
0043デフォルトの名無しさんNGNG
>>41-42
つーかさぁ、ソースあるんだから見ろよ。
いい悪いは別にしても、いろいろ興味深いテクニック満載だから。
0044minimaNGNG
>>41-42
わー,すんません。誤解させてしまったみたいっす。
参考書はVC++5.0についてきた「VisualC++5.0プログラミング入門」です。ASCIIのね。
Windowsのメッセージのやりとりを理解しないままこの本を読むとちんぷんかんぷんでした。
しょうがないので WinMain() から書いて,とりあえずゲームみたいなのを作っているうちに
だんだんと「WM_*****」のなんたるかが分かってきたんですよー。
んで今その本を読むと,あぁ,なんだ,こんなことだったのか〜てな感じで。

Townsの頃が懐かしいです。何も考えずに MOS_mouse(&b,&x,&y); とかやってれば
自動的に b,x,y にボタンの状態とかマウスの座標とかをセットしてくれてましたもんね(´ー`)
0045デフォルトの名無しさんNGNG
やっぱ初心者やDOSのプログラミングに慣れてる人にとってMFCがわかりにくい一番の理由はイベントドリブンの概念なんですかね・・・?
0046名無し戦隊ナノレンジャー!NGNG
イベントドリブンが分かっていてもMFCはイヤ。
SDKとはイベントの呼ばれ方が違う。
っていうか何かムカツク!
004746NGNG
やばい「なんでもあり板」から来たのがバレた!?
0048デフォルトの名無しさんNGNG
初心者でもイベントドリブンが理解できないってことはないでしょ。
みんなVB愛好家だし(藁)

MFCってAPIのラッピングに過ぎない部分と、C++ライブラリとしての部分があるんで

結局APIがわからないとMFCもわからない。
C++がわからないとMFCもわからない。

ってことでは?

MFCはクソだがMFCすらわからないヤツはもっとクソ
00491NGNG
 MFCなんかヤメトケというお達しが出たにもかかわらず、Win32APIで
組んでいると生産性悪いので、結局MFCにもどっちゃいました。なんか
最近慣れてきちゃった。こまりましたな。
0050デフォルトの名無しさんNGNG
はー、
どこへ行っても生産性生産性・・・。
0051デフォルトの名無しさんNGNG
>>49 = 1

WTLはどうよ?
0052MFC信者NGNG
なんかMFCはクソだとか言ってる人多いですが・・・
ただ単に理解できなかっただけなんでしょ(笑ひ)
0053デフォルトの名無しさんNGNG
いや、本当にクソだよ。
ただ現時点では他に選択肢がないからしょうがない。
BorlandのOWLの方が全然使いやすかったね。
0054名無しさん@お腹いっぱい。NGNG
すぐにC#とWTLが一般的な選択肢になるよ。
0055>54NGNG
良いものが認められ使われるとは限らないのはOWLを見てもあきらか。
政治的なメリットが無いとね
0056デフォルトの名無しさんNGNG
逆に一般的に認められるにしたがって酷くなっていくものもおおいけどな。
0057MFC信者NGNG
クソとか言ってる人は具体的に批判してみたら(笑ひ)

>ただ現時点では他に選択肢がないからしょうがない
はひ?
自分で作れよ(笑ひ)
0058MFC批判NGNG
>>57
OOPでない
以上!
0059MFC信者NGNG
>>58
あれ以上OOしたら逆に使いづらくなる。
どこをOOにすればいいの?
0060デフォルトの名無しさんNGNG
おいおい、MFCの何処がOOPなんだよ(怒
いい加減なこと言うな!!!
0061デフォルトの名無しさんNGNG
MFCは、COMとかシェルとかUIのMSアホ機能へアクセスするブリッジとしてしか
使ってない。よって、別にOOであろうがなかろうが一向にかまわないんだが。(藁
逆にDLLとかで呼出す形式の方が助かる。
デカイんだよ!
0062デフォルトの名無しさんNGNG
>>61
同意。MFCをスタティックリンクするともう・・・(涙
0063MFC信者NGNG
>>60
SDKと比べたら遥かにOOPですが。

>>61,62
デカイと何か困りますか?いまどき。
0064MFC信者NGNG
訂正
SDKと比べてもしょうがない。

いいたかったのはあれ以上OOPにしたって対した利点は
ないってこと。
0065名無しさん@お腹いっぱい。NGNG
おれも早くMFCのタコさに気づくぐらいのレベルになりたいな。
(そうです。UNIX/Cのドキュソぷろぐらまです 藁)

ところで今のWindowsにCではアクセスできないインターフェイスは
あるのでしょうか?
すみません。どなたか教えて下さい。
COMのインターフェイスはCでも大丈夫と聞いたのですが・・・
0066MFC信者NGNG
>>65
>おれも早くMFCのタコさに気づくぐらいのレベルになりたいな。
安心してください。ほとんではMFCを批判すればなんかかっこいいじゃないかって
思ってる厨房たちです。

それからCでアクセスできないインタフェースは無いです。
0067名無しさん@お腹いっぱい。NGNG
>66 ありがとうございます。
今からMFCをなんとか使えるぐらいになりたいと思います。
さすがにCじゃ辛そうなので(藁

#MFCでWindowsアプリ作るのもおもしろそうじゃん!
#Delphiも面白かったし。。。あーこんな世界があったんだ。。。(涙
0068禁断の名無しさんNGNG
>>66
もしかしてMFCしか知らない人?
0069名無しさん@お腹いっぱい。NGNG
>68 -先のドキュソだけど-

>もしかしてMFCしか知らない人?
MFCしか知らなくてもいいんじゃん?
事実上のスタンダードなんだから。
他にスタンダードって言えるような
C++のライブラリなんてある?

性能云々いうんだったら、Cで作れば
いいじゃない(藁

どっちにしてもWindowsアプリを作る動機に
長いものに巻かれろ、的な考えが基に
あるだろうから、善し悪しを真剣に
論じること自体がなんだかねぇ。

#私もMFC、信じてます(藁
0070デフォルトの名無しさんNGNG
VC++6から、static linkでも結構小さくなったような気がするんだけど。
ただMFCってdll版とstatic版でびみょーーーに動作違ったりするのよね。
分割ウィンドウ上のマウスカーソルとか。
0071デフォルトの名無しさんNGNG
>それからCでアクセスできないインタフェースは無いです。
めんどい
0072MFC信者NGNG
>もしかしてMFCしか知らない人?
はひ?だとしたら何ですか?
本業はVBですが(笑ひ)

具体的な批判まだぁ?
0073デフォルトの名無しさんNGNG
MFCを否定するつもりなぞありませんが
なんどやってもVCLのほうが楽だなぁ‥と思います。
「スタンダードだから」とか「参考資料が多いから」とか以外で
MFCが優れているというところっていったいどこなんでしょう?
0074デフォルトの名無しさんNGNG
なんだかんだ言って、MS純正ってのは色んな意味で安心。>73
とか言ってみるテスト
0075デフォルトの名無しさんNGNG
安心を買うために苦労はしたくないなぁ
なんて言ってみたりするテスト
007662NGNG
>63
>デカイと何か困りますか?いまどき。
1MB超えるとFDに入らない。(藁
これが意外と困るんだよ。
客先のマシンがFDとCD-ROMしか無い場合、FDに圧縮
して持っていく羽目になる。しかも、圧縮して1MBに
納まらないと圧縮ファイルを分割して複数FDで
持っていくとかCDに焼くとかまぁ色々と面倒なんだよ。
ネットワークやMOが使えるならそっちを使うけど
未だに無いところも結構あるからね。
0077MFC信者NGNG
>>73
VCL使ったこと無いのでMFCと比べてどうかということは分かり
ません。(笑ひ)

>>76
納得(笑ひ)
0078名無しさん@お腹いっぱい。NGNG
>76
一つのファイルが1MB超えるってなんか作り方間違ってないか?
ま、そういう時もあるか。
CDRWがお勧めだね。
0079houkeiNGNG
おい、MFC信者よ。具体的な批判をしてやるぞ。
おまえチンポついてるか?チンポついてるならMFCなんか使わず
アセンブラで全部かけ!バカモンが!
アセンブラでかけないやつはチンポがちいさいか、ホウケイだ。わかったか!
0080デフォルトの名無しさんNGNG
あ〜うぜえ>79
sageてるからまだいいけど。
0081デフォルトの名無しさんNGNG
>79
ついてません。
0082名無しさん@お腹いっぱい。NGNG
>>69
長いものに巻かれろ的な考え方ならますますMFC
は、やめたほうがいいんじゃないか?
間違いなく衰退していく技術だから。
0083デフォルトの名無しさんNGNG
あーもういいよ。
いまどきMFC使う奴はドキュソ。
って結論でおしまい。
0084MFC信者NGNG
まだぁ?
0085デフォルトの名無しさんNGNG
というわけで、>>84はドキュン
0086MFC信者NGNG
結局逃げられたぁ
0087houkeiNGNG
おいMFC信者!おれの批判はわかったのか?!
わかったのならイッテヨシ!
0088デフォルトの名無しさんNGNG
だれに?>86
0089MFC信者NGNG
もう寝るぞグラァ(`Д´)
あしたまた来てやるから、ちゃんと考えとけな。ъ( ゚ー^)

オヤシミ
0090デフォルトの名無しさんNGNG
プロトタイピングはそれなりに早く終えることが出来るが、
それ以外の事についてはお荷物でしかない。
まともな奴ならMFCをいつでも切り離せる様に作るだろう。
0091デフォルトの名無しさんNGNG
ドキュメント/ビューモデルなんかよくできてると思ったよ。
最初に出てきたときにはね。
0092デフォルトの名無しさんNGNG
長いtiムpoに巻かれるのもどうかと思うぞ。
009312NGNG
だめだめなCOM実装をなんとかしろよ
包含クラスとしてインタフェースを実装しなければならないから
ルートクラスにアクセスするのにへんなポインタ変数使わなきゃならない

IDispatchの実装のために変なテーブル作らなければならないのも解決しろよ
独自テーブルなんてやめてタイプライブラリ経由でデュアルインタフェースとして
実装できるようにしろ。とうぜんClassWizardも対応させること。

今日中に解決策をあげること>MFC信者
0094デフォルトの名無しさんNGNG
>>93
MFC信者にそんなこと言ったって判らんと思うが。
変なテーブルが必要なのは、Cでも動かせる必要があるからなんじゃ?
そういう意味でQueryInterfaceの辺りは別に悪いとは思わないけど。
COMの問題は別の所にあるのでは。
0095デフォルトの名無しさんNGNG
>>91
>ドキュメント/ビューモデルなんかよくできてると思ったよ。

Doc/Viewモデルは別にMFCが発明したわけじゃないでしょ。
OWLにもあったし、OWLに比べるとMFCのDoc/Viewは
間に合わせで作った感じがする。
大体MFCのクラスって何で多重継承利用してないの?
ちゃんとした理由知ってる人教えてん。
0096デフォルトの名無しさんNGNG
継承元が全面仕様変更になっても動くようにだろ(藁ひ)
0097デフォルトの名無しさんNGNG
>>95
多重継承を利用したクラスライブラリが優秀とは限らないぞ。
だからMFCがすぐれていると言う気は全くないが。
私はクラスライブラリにおいて多重継承を使うかどうかは、設計理念としての
選択肢のひとつだと考える。
0098デフォルトの名無しさんNGNG
シリアライズ機能はイラネー
0099デフォルトの名無しさんNGNG
>>96
ルートオブジェクトCObjectがあるんで多重継承しちゃうと
ルートオブジェクトが2つになっちゃうからでしょ。
0100デフォルトの名無しさんNGNG
>>95 だったわ
0101MFC信者NGNG
>包含クラスとしてインタフェースを実装しなければならないから
>ルートクラスにアクセスするのにへんなポインタ変数使わなきゃならない

変なポインタってpThis のこと?
マクロ一行書くくらいでわめくなよ(笑ひんぐ)

>IDispatchの実装のために変なテーブル作らなければならないのも解決しろよ
>独自テーブルなんてやめてタイプライブラリ経由でデュアルインタフェースとして
>実装できるようにしろ。とうぜんClassWizardも対応させること。

変なテーブルってDISPATCH_MAPのこと?ClassWizardが作ってくれるんだから
いいじゃない。
ヂュアルインタフェースじゃないと困ることありますか?
おそい?ほんと?試した?どのくらい遅くなった?(笑ひ)

>変なテーブルが必要なのは、Cでも動かせる必要があるからなんじゃ?

激しくはひ?チミ、恥かきたくなかったら、あんまりかきこまないほう
がいいかもね。恥かくのが好きなの?カッコイイ

>シリアライズ機能はイラネー

シリアライズが有効な例・・・CMapStringToStringをシリアライズする場合
書きこみ処理--->
CMapStringToString stringmap;
stringmap["1月"] = "January";
stringmap["2月"] = "February";

CFile file;
file.Open("c:\\ddd.data", CFile::modeCreate | CFile::modeWrite);
CArchive ar(&file,CArchive::store);
stringmap.Serialize(ar);
<---書きこみ処理

読みこみ処理--->
CMapStringToString stringmap;
CFile file;
file.Open("c:\\ddd.data", CFile::modeRead);
CArchive ar(&file, CArchive::load);
stringmap.Serialize(ar);
<---読みこみ処理

自分でやるより遥かに簡単。
0102MFC信者NGNG
また、テレッホーにきてやる。
010312NGNG
>>101
なかなかMFCに通じている方とお見受けした

包含クラスではなく多重継承としてインタフェースを実装すれば
pThisは不要だし、まるで多重継承で実装したときにコンパイラが
吐くようなオフセット計算されたポインタを
わざわざマクロ計算していることに意味を感じないだけど。
なぜそうまでして多重継承をかたくなに拒否するんだろ? >MFC

デュアルインタフェースについては「テクニカルノート65」を見ろとか
言ってほしかった。


そんなのなくてもOK的な回答ではなく、解決策をしめしてくれたら
うれしかったのになー

みんながシリアライズに腹立たしさを感じているのは、
だぶん CDocument::Serializeについてだとおもう。
Serializeによるオブジェクトパーシスタンスのサポートと同時に
単なるファイル名によるセーブ/ロードのサポートもほしいってことでは?
CDocument::OnSaveDocument, CDocument::OnOpenDocument
をオーバライドすれば済むかもしれないけど、
ちょっとオーバーライドするには機能がありすぎ。

あと、俺的にはシリアライズされたファイルの中にクラス名が
そのまま入るというやり方はあまりいいとは思えない。
(へんなクラス名がばればれで恥ずかしいのよ)
Deserializeのときにクラス名からCreateObjectしているから
こうなるんだろうけどGUIDとかと対応付けさせればいいのにね。

VC1.0のころはいいなとは思ったけど
今となっては全体的に古さが否めない感じだけどどうよ?>>MFC信者
0104禁断の名無しさんNGNG
>>99
>ルートオブジェクトCObjectがあるんで多重継承しちゃうと
>ルートオブジェクトが2つになっちゃうからでしょ。

virtual継承すればスパっと解決。
C++をなめちゃいかんぜよ。
0105デフォルトの名無しさんNGNG
>>104
「テクニカル ノート 16: MFC における C++ の多重継承」を読め。
0106デフォルトの名無しさんNGNG
すでにCObjectから仮想でない継承を受けているクラス
(CWndやCFileなどいくらでもある)複数を多重継承するには
どうしたらいいのかなぁ?そこから仮想継承ですか?

逝って下さい、さようなら>>104の同性愛板からの人
0107MFC信者NGNG
>なぜそうまでして多重継承をかたくなに拒否するんだろ? >MFC
わからないな。一度だけどっかで読んだきがするが。
多分MFCInternal。

>デュアルインタフェースについては「テクニカルノート65」を見ろとか
>言ってほしかった。
そう逝ってやりたかったな(笑ひ)

CDocumentのシリアライズについては、当方勉強不足で
コメント不可能。許してくれ(笑ひ)

>こうなるんだろうけどGUIDとかと対応付けさせればいいのにね。
まーね。でもわざわざGUID使ってクラス名と対応ずけるのも
めんどくさいな。

>VC1.0のころはいいなとは思ったけど
>今となっては全体的に古さが否めない感じだけどどうよ?>>MFC信者
あんたずいぶん昔から使ってるな。当方VC4から。
で、今のところ古さは感じないな。
まー漏れが厨房の可能性のほうが高そうだがな。
0108104NGNG
>>106
>すでにCObjectから仮想でない継承を受けているクラス
>(CWndやCFileなどいくらでもある)複数を多重継承するには
>どうしたらいいのかなぁ?

話の流れに関係ない問題持ち出されても困るわ。
私が言いたかったのはMFCがvirtual継承してればよかったのにね
ってことよ。

>さようなら>>104の同性愛板からの人

同性愛板の名無しハンドルを知ってるなんて、アナタもお仲間かしら?
0109デフォルトの名無しさんNGNG
pizaでそんな怪しい名無しハンドルなんて簡単にさがせるよ
0110MFC信者NGNG
>今となっては全体的に古さが否めない感じだけどどうよ?>>MFC信者

あたまだいじょうぶ?(藁ひ)
0111デフォルトの名無しさんNGNG
↑偽者?
0112MFC信者(REAL)NGNG
いじめた人がイパーイいたからね。
もうこの名前でカキコはしません。
0113。>NGNG
MFC1.0ってのは、MSC7だったかな?
0114houkeiNGNG
オイMFC信者!おまえのちんこは長いのか??
どうなんだ?とりあえず長いものは巻いておけ!
あとコンパイラオプションでアセンブラを吐き出して解析してみろ!
なぜMFCがクソなのかわかるからな!わかったか!
わかったらいってよし!
0115デフォルトの名無しさんNGNG
>>113
日本語版はリリースされてない。VC++1.0でMFC2.0だったし。
でもまぁMFCってこの時代の苦し紛れの仕様引きずってる物も多いんだよな。
CSocket辺りとか。スレッド使うようになったらもっとましになりそうなん
だけど、互換性なくなるからできないんだろうなぁ。
0116Virtual MFC信者~()NGNG
{
はい!!納豆ごはんにも毎日醤油とMFCかけて食べてます。
はい!!お風呂にもMFC入れて入ってます。
はい!!尿道の中にMFC入れても痛くありません!!!
はい!!毎日MFCの神に向かってお祈りは欠かせません。M氏に帰依します!!!
はい!!夜なんかMFCのソースでオナニーしますハァハァハァ。MFC萌え〜
はい!!!彼女のマンコに指入れるよりwincoreに指入れる時の方が3倍速く白いものが出ます!!!
}これ位逝っときゃ満足すか
0117デフォルトの名無しさんNGNG
それは信者ではなくてフェチといわんか?
0118デフォルトの名無しさんNGNG
>>116 {を除く6行目がおもしろい
0119へぼMFCプログラマNGNG
うへー、全部読んだけど、
結局、MFCの何が悪いのかがよう分からん・・・
0120デフォルトの名無しさんNGNG
MFC無しではいられない体になってしまう麻薬性が
一番いけない。。。
0121デフォルトの名無しさんNGNG
そんなに簡単なのかい?
0122デフォルトの名無しさんNGNG
      ,一-、
     / ̄ l |   / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
    ■■-っ < んなーこたーない
    ´∀`/    \__________
   __/|Y/\.
 Ё|__ | /  |
     | У..  |
0123デフォルトの名無しさんNGNG
VCLまんせー
0124デフォルトの名無しさんNGNG
MFC無しで何でも組めれば良いんだけど・・・
そうも行かない所が悩ましい。
0125デフォルトの名無しさんNGNG
>>115
スレッド使うと互換性が無くなるってどういうこと?おしえてくん。
0126デフォルトの名無しさんNGNG
WTLはどうよ?ってスレ違いか。
01271NGNG
いろんな書き込みを読んでVCLも使ってみようかという気にもなっている
けど、BorlandCを買うのがちょいつらい(財布の問題)。でも結局クラス
ライブラリっていうのは設計者の思想に自分を合わせることに苦痛を感じ
るかどうかで良し悪しが決まるんじゃないの?BorlandがTurboCだしてた
とき、TVなんちゃらってキャラクタベースのウィンドゥクラスライブラリだし
てたけど、あれの使い勝手が良くなかったからちょっとBorland製クラス
ライブラリにはひいちゃうところあるんだよな。
0128デフォルトの名無しさんNGNG
開発にVisualC++使うとしたら、MFC以外の選択肢には何があるのかな?

今時WindowsAPI直接呼ぶぐらいならMFC使った方が効率いいし、
VCLは開発環境が違うから論外だし、そうなるとATLでしょうか?
WTLは次のVisual.NET待ちですよね?

それとも、MFCを使うべきかどうかではなくて
VisualC++を使うべきではないということなんでしょうか?
0129デフォルトの名無しさんNGNG
趣味で作る物はDelphやBuilderでもいいけど、周りに合わせるとやはりVCは外せない。
ケチ付けてるのは単にMFC使いこなせないからC++Builderに逃げただけだろ。
マイクロソフト製で無い時点でVCLが一般になることだけはないので、
次のVS待って出たらすぐにC#と使い分ければいい。それまではVBとVCを使い分ける。
複雑な物はMFCベースで、DirectX使うゲームなどはSDK直叩き。
0130結論NGNG
プロなら全部使えるようにしとけ
0131347NGNG
>>129
使いやすいと思うライブラリを
選択するのを"逃げ"というのか?
0132デフォルトの名無しさんNGNG
>>130
激しく同意。
全部使えて、その上で選択できる能力は欲しい。
って、これはSEの仕事になるのかな? >選択

とか言いながら、僕はMFCよりSDK使った方が開発効率の良い
厨房駄目駄目プログラマーで〜す。

鬱だ死のう。
0133デフォルトの名無しさんNGNG
> 複雑な物はMFCベースで
藁
0134デフォルトの名無しさんNGNG
私そう使い込んだわけではありませんが、感想。
・MFCはAPIの低レベルラッパにしか見えませんでした。
 あと直交性が低い部分があるのがうっとおしい。
・VCLはまだましですが、大規模プログラミングを考慮して
いないような気がします。
・SDKを直に使うとなんだか見通しが悪くなります。
(あのデカいswitch文はどうも・・・)

MFCよりもっとましな Win32用OOP向けライブラリって無いのかな?
0135134NGNG
あ、どこかで見たMFC批判を一つ。曰く、
MFCだとObserverパターンがCDocument/CViewに結び付けられていて、
汎用性が下がっている。
CDocumentが Subject(JavaだとObservable)を継承してくれればよかったのに、と。

0136デフォルトの名無しさんNGNG
> ・MFCはAPIの低レベルラッパにしか見えませんでした。

突き詰めれば、MFCの良いところはこれに付きるのでは?

どうせMFCだけでできることは限られているので、
Windowsで凝ったこと始めるとAPIを叩かないといけない。
だからWindowsAPIを把握した上で手抜きするためにMFCを使う。
低レベルラッパで良いんですよ。
0137デフォルトの名無しさんNGNG
>>129
VC高くて買えない・・・>BCB買った

って流れでVCLなんだけど。

今は良いな。Learningとか安いもんな。
でも、VCとBCBの生産性を比較したらかなりの確率でBCBの方に軍配があがるよ。
0138>>137NGNG
それは分かっているのですけどBCBが無いと何も組めない体になりませんか?
趣味プログラマならそれでもいいんですけど、結局使い分けでしょう。
RADやりたいのならVBの方がメジャーで相性良いですし、
先の事を考えるとVC#はDelph作った方が作ってるわけで、
RADの主流はC#になるでしょう。Windows上で組むのであれば、
最新技術のサポートの問題でMS製品でないと不安があります。
0139デフォルトの名無しさんNGNG
>>134
もう自分で作るしか・・・(藁

今通信関連のプログラム作ってるけど、MFCのCSocketもVCLのTSocketも
いまいちなので、自分でシコシコ作ってるよ、オレは。
0140>>139NGNG
大物作るとなると結局そうなりますね(笑
ウインドウ周りまで作る必要ないから
今のところMFCとの複合でやってますが。
01411NGNG
結局レベルの高いOOPSを求めず、便利なツールとして使うのならMFCって
便利ってことなんですね。
0142デフォルトの名無しさんNGNG
>>139
CAsyncSocketはどーよ?
■ このスレッドは過去ログ倉庫に格納されています