![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
![](http://oshiete.xgoo.jp/images/v2/common/profile/M/noimageicon_setting_16.png?5a7ff87)
今後の将来性と処理速度を考慮して、MFCとCLIでどちらを学習しようか悩んでいます。
作りたいソフトはいろいろありますが、画像閲覧ソフトやデスクトップユーティリティ、株価のデータ収集ソフト・簡単なゲーム等を作りたいです。
MFCについては入門書を一通り読み終えており、簡単なソフト(ホント、お粗末なものです。)くらいは作れます。CLIについては、flameworkを使う事は知っていますが、具体的にはまだ理解していません。
入門書等はCLIの内容が多いと聞いたのですが、将来的に考えてCLIを学んだほうが良いでしょうか?個人的には、処理速度が速い?MFCを使いたいとは思っていますが、今後MFCが枯れてゆく技術であればCLIにしたいとも思っています。また、学習の難易度は問いません。
ご意見をお願い致します。
No.1ベストアンサー
- 回答日時:
MFC自体のバージョンアップなどはVS2008でも行われているようです
VB.NETやC#などと連携するようなものを開発するのであればCLIを中心に据えたほうがいいかもしれません
これとは逆に C/C++のみまたはこちらがMainなら MFCかと思います
ただMFCはWindowsのメッセージシステムをある程度理解しないととっつきにくい感があります
お返事ありがとうございます。
プログラムのメインはC++のみで考えています。今後C#も学ぶかも知れませんが...。CLIのほうは処理速度はどの程度のものなのかご存知でしたら教えてください。
>ただMFCはWindowsのメッセージシステムをある程度理解しないととっつきにくい感があります
メッセージの処理等はMFCを使用しないで、APIを直接操作するプログラミングを覚える際にどういう流れで処理されているか学んだので基礎はできていると思います。
No.4
- 回答日時:
>CLIのほうは処理速度はどの程度のものなのかご存知でしたら教えてください。
5年以上前ですが、.NET Framework1.0で簡単な評価をした際の値で、数値演算の繰り返しという.NETに有利?な条件の一例です。
●円周率20000桁の演算(マーチンの式)
release deug
Native 91s 33s
CLI 81s 78s
#これをどう見るかは使い方しだいですが・・
お返事ありがとうございます。
回答いただいて考えたのですが、
簡単なことしかできませんが、自分でいろいろ実験してみるのも価値がありそうですね。
No.3
- 回答日時:
> ヘッダファイルに実行コードを書くスタイルになじめないもので…
そんな縛りはありません。IDEが吐くひな形が"たまたま"そうなってるだけ。
> あとはC++テンプレート機能がCLIではジェネリック型として組み込まれていることかな …
そんな縛りはありません。C++/CLIではtemplate/genericの両方使えます。
> CLIの場合はFormが基本になります
そんな縛りはありません。C++/CLIでDoc/Viewに従うのはいとも簡単です。
No.2
- 回答日時:
現行のパソコンであればCLIでもMFCでもさほど変わらないと思います
P4シングルコアの1GHz未満だとCLIのほうが遅いかも
実行コードベースで考えればCLIの方が実行量は多くなるでしょう
個人的にはコードの保守性などを考えるとCLIよりMFCかなと思います
ヘッダファイルに実行コードを書くスタイルになじめないもので…
あとはC++テンプレート機能がCLIではジェネリック型として組み込まれていることかな … 厳密には違いますがイメージとして
同じ機能を持ったアプリをCLI/MFCで書いてみれば違いなどもはっきりしてくると思います
CLIの方が標準ライブラリが充実しているかなと思います
ですが、自分にとって物足りな部分は結局継承などを使ってコーディングってことになります
MFCの場合はDoc/Viewモデルが基本になります
CLIの場合はFormが基本になります
MFCでもダイアログベースで開発すれば CLIのFormと同じようなことはできます
お返事ありがとうございます。
CLIは標準ライブラリが充実しているというのが魅力的ですね。
処理速度がどちらもさほど変わらないということなので、もう少しCLIの概要を学んだ上で決めたいと思います。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- UNIX・Linux UNIX manページとか見る頻度高いの? 特にCLIばかり使っている人のなかで というかCLIとか 3 2023/05/22 17:06
- プリンタ・スキャナー Brother MFC-7460DNの一時停止解除について 1 2022/12/03 12:38
- 発達障害・ダウン症・自閉症 中学の時にIQ82の境界知能と診断されました。 今の私も、やはり境界知能でしょうか? そしてこれは、 3 2023/02/19 00:37
- その他(プログラミング・Web制作) プログラムの勉強のおすすめは 7 2022/12/09 20:09
- デスクトップパソコン 仕事で使うPC 10 2023/04/23 00:27
- 教育ソフト・学習ソフト 3Dモデリングソフトでお勧めを教えてください 1 2022/06/05 01:17
- 会計ソフト・業務用ソフト 会計ソフトを探してます。 4 2022/08/17 08:35
- その他(プログラミング・Web制作) Pythonを用いたフラッシュ暗算ソフトの開発に必要なもの 2 2023/01/29 02:22
- UNIX・Linux manページあったら嬉しい? 私はArch GNU/Linuxユーザです。GUIも使っているのですが 1 2023/07/31 13:13
- その他(ソフトウェア) シーケンスプログラムで。 1 2022/06/23 21:44
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
JSPの処理の途中で、JavaScript...
-
リクエスト結果が一瞬しか表示...
-
一定時間ごとの実行
-
Excelのマクロ一括実行ができな...
-
デザイン時のVisible=Falseは実...
-
VBAの[cellsメソッドは失敗しま...
-
画像読み込み時にjavascriptを...
-
VBA SORT Applyでエラー
-
alert()が実行できない
-
PowerPointで時計表示
-
jqueryのbxsliderをマウスオー...
-
if(1){...}とはどういうことで...
-
javascriptで最初のところに戻...
-
静的スコープとスコープチェー...
-
条件に一致しない行を全て削除...
-
アクセスのフォームでタイマー...
-
初心者です。gulpでコンパイル...
-
VB.NET2003 テキストボックスに...
-
htmlのfileタグに自動で値を入...
-
gas 全角数字を半角数字に変換
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
JSPの処理の途中で、JavaScript...
-
デザイン時のVisible=Falseは実...
-
初心者です。gulpでコンパイル...
-
if(1){...}とはどういうことで...
-
リクエスト結果が一瞬しか表示...
-
resizeToメソッドが動作しません
-
C#でボタン名を変更しても動く
-
jQuery ui Datepicker 明日以降...
-
〔Excel:VBA〕マクロの実行が異...
-
PowerPointで時計表示
-
1つのVBAコードをすべてのコア...
-
VBA ステータスバー DoEvents
-
VBA SORT Applyでエラー
-
Excel VBA にて JavaScript の...
-
alert()が実行できない
-
GoTo文とかSelect文の処理の仕...
-
既存のwebサイトで、ローカルの...
-
一定時間ごとの実行
-
javascriptで最初のところに戻...
-
eval()の危険性の具体例を教え...
おすすめ情報