人力検索はてな
モバイル版を表示しています。PC版はこちら
i-mobile

Microsoft Visual C++ 6.0 で、ダイアログベースのSDKプログラミングをしながらも、リソースだけ、MFCでできるように、書くのではなくてマウスでピロピロとしたいです。
手続きを教えてください。
あと、自分の主観で結構です。MFCを嫌がるわけがしりたいです。私もMFCは自分で書いたソースコードではないので、気分的に嫌です。それ以外にどのようなデメリットがあるのでしょうか。

●質問者: ymlab
●カテゴリ:コンピュータ
✍キーワード:C++ mfc Microsoft SDK けが
○ 状態 :終了
└ 回答数 : 3/3件

▽最新の回答へ

1 ● nitscape
●70ポイント

http://homepage1.nifty.com/Roy_/Software/WTL/WTL_Lecture01.htm

WTL 講座 第1回

「マウスでピロピロとしたい」という意味が分からなかったのですが...

MFCのダイアログ(Dialog)をMFC以外のプロジェクトから使いたいということでしょうか?おそらくCDialogを呼び出して使うことはできないと思います。

MFCではありませんが、ATL(WTL)のCWindowImpl派生クラスのCDialogImplであれば可能です。

URLに書かれている方法でWTLをインストールし、アプリケーションウイザードでMFCの場合と同じようにダイアログ派生プロジェクトを生成します。そしてstdafx.hに書かれている内容をSDKで作成したプロジェクトに追加し、AboutDlg.hで書かれている内容を適宜変更してコピーすればOKです。

あとは

CaaaDlg dlg:

dlg.DoModal();

という感じでダイアログを生成できます。


私はMFCは特に嫌ではありませんが、最近はあまり使っていません。まず作成したEXEが単独では動作せず、DLLが必要になる点、スタッティックビルドすればDLLは不要ですが、EXEサイズが大きくなる点がデメリットだと思います。

あとメッセージマップなどが静的に宣言されているためクラスの中でウインドウクラス+メッセージマップを宣言するのが面倒(WTLは非常に簡単)という点もデメリットに感じます。またEXEではなく、DLLからウインドウを生成しようとするとMFCのクラスはリソースが見つけられないことがある点もデメリットです(マクロを利用することでリソースを見つけることができるようになっていますが、実際にはバグがありいくつかのクラスでは見つけられません)。

ざっと思いつくデメリットはこの辺でしょうか?しかしWindowsプログラミングの駆け出しの頃はMFCがあったおかげでWindowsプログラミングができるようになり助かりました。楽にプログラミングできるというメリットは非常に大きいと思います。

◎質問者からの返答

表現が不適切で申し訳ございません。

マウスでピロピロしたいというのは、GUI部分は、リソーススクリプトを使いたいということでした。

WTL、面白そうですね。よく雑誌に名前が取り上げられていますが、特に意識をしていませんでした。

MFCのプログラミングにDLLが必要だとは知りませんでした。

なんだかVBみたいですね。

MFCは確かにSDKでゴリゴリ書くよりも楽だとは思うのですが、楽さを求めるのであればVBでよいわけで、なんでMFCの本が多いのかが[Win32APIの本があまり見つけられない・・]わからないのです。

貴重な回等ありがとうございました。


2 ● karla
●50ポイント

http://homepage2.nifty.com/Fujimaki/download/Comparison/

主な開発ツールの数値計算速度比較

私が感じるMFCのメリットとデメリットです。


まずメリットとしては産性の高さがあります。

広く一般に使われているライブラリなので不具合も少なく、新規に自作するよりも短い時間で開発ができます。

よく使われるJavaやC#などもライブラリが豊富な言語です。


デメリットはMFCのDLLのバージョンによって不具合がある場合でしょうか。

あとはVCに慣れてないとソースコードの可読性に欠けますね。


また、VBはプログラミングを意識させない開発環境で、VCはプログラミングによる高機能な開発をターゲットとしています。

VBを使うのはサンプル画面を作るぐらいでしょうか。

細かい事をやろうとすると、VCでAPIを使ってるのと対して変わらない内容となってしまいます。

速度もVCより遅いですし、VBを使うメリットがあまりない状況となります。

◎質問者からの返答

ご回答ありがとうございます。

VBとVCの違いについては、

その通りだと思います。

しかし、細かいことをやろうとしなかったり、個人で作る程度の

小、中規模の量ならば、VBでいいのでは?と思ったわけです。

会社にいたときも私はVCでした。でもMFCではありませんでした[あまりにも規模が大きくて、自分の担当とそのまわり以外はなんのこっちゃわかりませんでしたし、サービス関数も全部別の人が作ったものをコールする感じだったので、MFCやSDKとかあんまり関係なかったですが]。

しかし、やっぱりVBの案件の人もいましたし、何故、簡単だからという理由でMFCをわざわざつかうのだろう。と思ったのです。簡単だからという理由ならば、VBの方がMFCよりももっと簡単で生産性が高いです。

あ、最後に私はVBを擁護するつもりはまったくないですよ:-)


3 ● aki73ix
●500ポイント

http://d.hatena.ne.jp/aki73ix/20051106

Aki in the Sky II - SDKで作ってみよう

ダイアログベースのSDKプログラミングでリソースをエディタで簡単に使う手順をダイアリのほうにまとめてみました


覚えておくとかなり楽です


MFCが嫌がられる訳ですが

1.MFCはWindows95時代は、必ずしもDLLがインストールされているとは限らず、ランタイムのインストールが必要だったために、ユーザーに不便をかける恐れがあった・・・・今のWindowsにはMFCのDLLが最初から入っているので、そんなことを心配する必要はないのですが、OSに用意されている機能の拡張DLLを呼んでいるような気がするので、軽いアプリケーションを作る時にはMFCを使うといけないような気がするとかじゃないでしょうか(外部DLLを呼ぶと確かにメモリは使いますが実際は不明です)


2.当初MFCにはバグが沢山あったので、現在も生理的に嫌う人がいるという話はあります


VBよりMFCを使う人は、VBを使っているとプログラムしている気分にならないとか、VBで出来ないことをしたいとか、VBのスピードの遅さがいやだとかだとおもいます

確かに、MFCよりもVBの方が簡単なアプリを作るなら楽ですが、私に言わせると、それよりDelphiの方が高速なアプリを、もっと楽に作れるんだけどなと思ったりするわけですが

◎質問者からの返答

aki73ixさん。

ものすごく丁寧な回答ありがとうございました。

わざわざ、私のダイアリに書き込みをしてくださって、さらにページを作ってくださってありがとうございました。

上記ページを手順にすると、うまくつくれそうです。

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

関連質問


●質問をもっと探す●



0.人力検索はてなトップ
8.このページを友達に紹介
9.このページの先頭へ
対応機種一覧
お問い合わせ
ヘルプ/お知らせ
ログイン
無料ユーザー登録
はてなトップ