antenn-a
company profile

MFC航海日記 四十四日(Visual C++の検討)

ここ最近ユーザの数が非常にいい調子で増えるとともに、Visusl C++(以下VCPP)に対する基本的な質問が多く寄せられている。

その代表的な質問のほとんどが、C++を理解していないユーザの質問である事に気がついた。

ここで、今回は「本当にVCPPでいいのか!?」という事を考えたい。


prev


近年プログラマに対する「敷居」が高くなってきている。 VCPPを用いてWindowsプログラムをする為には、

@ C言語が出来る事
A C++言語が理解できる事
B VCPPのツールとしての使い方を知っている事
C 基本的なOSの知識(イベント駆動方式等)
D 基本的なAPIの使用方法
E 基本的なクラスライブラリの使用方法

を網羅していないと現実的にはかなり厳しい。


prev


という事は、C言語初級者が気軽に VCPP を使うというのはすでに無理がある。

では、何故 VCPP は辛いのだろうか?

それは、色々なところが自動化されているからである。 自動化されていれば、人間が書く必要が無いので効率はいいのだが、それは自動化されているところを理解している人がうれしいだけで、知らない人にとっては何がどうなっているか分からないだろう。


prev


筆者が VCPP を始める前までは、APP ウィザードも使っていなかった。

つまり、メイン関数から手書きしていたのである。

当然、アプリケーションクラスの生成からメインフレームの生成をして、メインフレームに View なり Dialog なりを貼り付けるように作っていた。

クラスウィザードを使っていない為、イベントの取得も自前で書いていた。 VCPPで言うところの、「DECLARE_MESSAGE_MAP」の所ですね。


prev


ひどい人になると、この「DECLARE_MESSAGE_MAP」や、「BEGIN_MESSAGE_MAP」「END_MESSAGE_MAP」を知らない人も居るでしょう。

イベント処理がどんなものかも分からずにソースを書いている人も多いと思う。

基本的な知識無しでやっていると、その内分けが分からなくなってしまうのでは?と思うのは私だけだろうか。

例えば、「インスタンス」って何だろう?とか、「ハンドル」って何だろう?等、Windowsプログラムに必要な知識が無くても「一応」プログラムを組む事は出来る所がいけないんですね。


prev


筆者が Borland C++ を使っていた頃はとても面倒臭かったが、その代わり非常にソースをデリケートに考えていたし、クラス階層やクラス設計に非常に悩まされ、いい意味でタメになった。

そして、VCPP に移行してからの率直な感想は「こりゃ、楽ちんだ」である。

楽な事は良い事だが、初級者にとってはそうでもないのでは無いだろうか?


prev


結論を言うと、以下の人には VCPP をお勧め出来ない。

@ C言語初級者
A C++初級者
B Windowsプログラム初級者

である。

その理由として、VCPP は C++ 言語を用いて Windowsプログラムをする人の為のコンパイラである為である。

つまり暗黙のうちに、VCPP は C++ が理解できていて、Windowsプログラムに必要な知識がある人を前提に作られているのである。

以上の人にお勧めなのは、「Borland C++ for Windows ver 4.5J」である。


prev


今回は少し辛口に VCPP を検討してみた。 これをどう受け止めるかは、あなた次第という事になる。


antenn-a

prev next


antenn-a