No.2ベストアンサー
- 回答日時:
有料=プロが使う物、ではないと思います。
・MFCはC++用のライブラリなので、C言語しかできないのであれば使えない。
・そもそもVisualStudioの有料版を持っていないとMFCが入っていないから使えない。
という事実があるだけかと。
なので、それなりの規模のプログラムを書くつもりであるのなら、MFCを使ったほうが保守性が高まる(はずな)ので、アマチュアでも普通に使えば良いと思います。
ただし、MFCはライブラリ(フレームワーク)自体に癖があるので、それを勉強するのにまた一苦労する必要がありますが。
>将来的にはWTLを利用したいのですが、WikiにはWTLはAPIと書いてありますが
>C++用テンプレートなのでしょうか(初歩的な質問かも知れませんがC++はほとんど分からないので)
C++のテンプレートという機能を用いて書かれたライブラリです。
なのでC++でしか利用できません。
C++が使えるであれば、MFCやWTL以外にも色々ライブラリがあるのですが、使えるのがC言語だけとなるとAPIを直接叩くしか無いかなぁと思います。
参考URL:http://next1.cc.it-hiroshima.ac.jp/CPPPUBLISH/no …
ありがとうございます。
CもC++もまだ勉強を始めたばかりなのですが
Visual C++にはLispのようなガベージコレクション機能があるということでしょうか。
Cでは、malloc,free関数、C++では、new,delete
を使うのでC++でも気をつけないとリソースリークが起きそうですが。
私はCでさえも
int a[10];
a[10]=1;
などとやって不正終了させたような覚えがあります。(Windows 95です)
よく、システムが壊れなかったものですね。
No.1
- 回答日時:
アマチュアでもC++に対する一定水準の理解があれば、MFCを積極的に使って開発してもOKだと思います。
むしろWindows APIをC/C++から直接利用する場合、リソースの寿命管理(=ハンドルの管理)をすべて自前で行なわないといけなくなるので、リソースリークしないようにプログラムを書くのが大変です。メッセージハンドラの記述もswitch-caseの嵐になってしまい、メンテナンス性や拡張性が悪くなります。ちょっとしたツールを作るときや、新しく知ったWindows APIやサードパーティのライブラリを試しにテストしたいときなども、MFCのアプリケーション ウィザードは重宝します。
MFC以外のWindows GUIアプリケーション開発用C++ライブラリとしては、ATLやWTLがあります。
最近のMFCほど豪華ではありませんが、ATLの一部はWindows SDKに付属しているし、WTLは無償で利用できる上、軽量なアプリを作るのに向いているので、C++テンプレート プログラミングをある程度理解しているのであれば、MFCの代わりにこちらを選択する手もあります。
なお、アマチュアでなくても、MFCフレームワークを使うのが適当でないゲーム アプリケーションなどでは、Windows APIやその他のAPIを直接利用したり自前でラップしたりして開発することもあります。
マルチプラットフォーム展開する場合は移植を容易にするために各種プラットフォーム固有のAPIを隠蔽する吸収層を用意すると思いますが、そういった層の内部ではMFCなどを使わず、必ずAPIを使う必要があります。
私はそこまでC++を理解していないのでAPIを使うしかありません。
ありがとうございました。
将来的にはWTLを利用したいのですが、WikiにはWTLはAPIと書いてありますが
C++用テンプレートなのでしょうか(初歩的な質問かも知れませんがC++はほとんど分からないので)
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(プログラミング・Web制作) TwitterAPIを使用せずに自動ツイートする方法を知りたい。考え方としてはブラウザを擬似操作して 2 2023/02/02 17:16
- JavaScript API連携のプログラミングについて(Typescript) 2 2023/05/03 11:00
- その他(開発・運用・管理) おんどとりWebStorage APIから温度情報を取得し表示したい 2 2023/08/03 09:53
- その他(SNS・コミュニケーションサービス) 2023現在では、ブログとTwitterを連動して投稿は出来なくなってしまったのでしょうか? 1 2023/06/22 20:38
- LINE LINEのリッチメニューのリンク先について 1 2023/06/28 17:41
- その他(コンピューター・テクノロジー) APIの意味 5 2022/08/07 11:19
- JavaScript インスタグラムのapiを利用して ID情報を持ってきて 自前のサーバでゲームサービスとか できますか 1 2023/05/12 16:10
- ハッキング・フィッシング詐欺 フィッシング詐欺についてです。先ほど佐川急便と見せかけた詐欺メールが届き、うっかり誘導に従ってApp 1 2022/10/17 19:45
- システム CSVファイルのマッピング処理の省力化 1 2022/11/24 00:01
- UNIX・Linux redmineにメールを飛ばす方法 1 2022/09/13 22:02
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Google ColaboでGUI作成
-
Windows Media Playerを開くと...
-
Ps+のフリープレイでDestiny2の...
-
scipy っていうのをいれようと...
-
python urlopen error について...
-
DirectX Graphics と OpenGLっ...
-
本格的なGUIを作るのにおすすめ...
-
マイコンSHでSQRT(平方根)が...
-
iCloudフォトライブラリ内の画...
-
Windows上でJavaかc言語を使い...
-
WAVE⇔MP3のためのライブラリ
-
LIBCMT.LIBをリンクしてコンパ...
-
動画像をキャプチャするプログラム
-
Dreamweaverのライブラリが反映...
-
c言語でntpdateコマンドにあた...
-
マイミュージックの曲で、WMPの...
-
Excel2003 VBE 参照設定を解除...
-
ituneを複数のPCにインストール...
-
ListViewで複数項目のドラッグ...
-
プログラマーで「使えない人」...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Ps+のフリープレイでDestiny2の...
-
Windows Media Playerを開くと...
-
本格的なGUIを作るのにおすすめ...
-
python urlopen error について...
-
Google ColaboでGUI作成
-
scipy っていうのをいれようと...
-
システムコールと標準ライブラ...
-
ライブラリ作成時のグローバル...
-
強化学習の環境作成、AI。自動...
-
プログラマーで「使えない人」...
-
unix-c と linux-c の違いは?
-
C++ 標準ライブラリの実際の中...
-
マウスのクリックを自動で
-
C# EXCELセルの入力規則設定に...
-
LIBCMT.LIBをリンクしてコンパ...
-
gcc に mktemp 危険と怒られ...
-
Dreamweaverのライブラリが反映...
-
静的ライブラリから静的ライブ...
-
DLL読み込み時エラー
-
sleep関数
おすすめ情報