2009-07-06 4 views
2

私はvC++開発者ですが、私はC++を学ぶのに多くの時間を費やしています。vC++開発者がよく理解しておくべき概念は何ですか?

+1

あなたはアプリをどのように開発していますか? –

+0

私はoracleバックエンドを使ってデスクトップアプリケーションを開発しています – yesraaj

+0

VC++はそのようなことを開発するための理想的なツールではありません。非.NET Win32実行ファイルをターゲットにする必要がある場合は、C#またはDelphiを参照してください。 –

答えて

4

、.NETをお勧めします、MFCおよびATL。

あなたは本当に言語を知っている必要があります。もう1つのメリットは、クロスプラットフォームライブラリです。 C++は、GUIまたはWin32プログラミングに関するものではありません。 boost、QT、wxWidgets(いくつかのXMLパーサーライブラリかもしれません)のようなライブラリを使ってMulti-Platformアプリケーションを書くことができます。

Visual C++はC++アプリケーションを開発するための優れたIDEであり、MicrosoftはVisual C++をより標準に準拠させるために努力しています。方言のない標準言語(MS方言)を学ぶことで、Rapid Development Environmentとマルチプラットフォームの移植性の利点が得られます。そこには、Windows、Linux、Unix、またはMac OSで同等に機能する多くの抽象ライブラリがあります。デバッガはVC++の優れたアプリケーションですが、まずは最初のことではありません。アプリケーションの単体テストを作成してみてください。彼らはあなたがテストされた(またはデバッグされている可能性があります:)コードの他の部分を壊していないことを次の修正で保証します。

MFCまたはATLを最初から習得しようとしないでください.STLについて理解してください。 MFCは古く、新しいバージョンはATLのラッパーです。 ATLはSTL-idioms(と時にはSTL自体)とWinAPIと結婚しようとする、奇妙なlibです。しかし、背後にあることを知らずにATLのコンセプトを使用すると、あなたも非生産的になります。いくつかのATLイディオムは非常に疑わしいので、ブーストやlibsのほうが良いでしょう。

最も重要なことは、言語の哲学と概念です。私はあなたが言語に飛び込むと、いくつかの深刻な本を読むことをお勧め:

ときは、ここであなたは次の本はあなたのうちの第一人者を行います非常に高度なC++開発者 次のようになります。

を重要なものを覚えてルール:質問がある場合は、ISO C++標準(つまり、標準文書)を作成します。そうすることで、他の多くの同様のことが起こります。これにより、言語デザインについて考えることができます。

この本のリストがお役に立てば幸いです。これらの書籍のコンセプトは、よく設計された最新のC++フレームワークですべて見ることができます。種類に関して


Ovanes

+0

Scott Meyersの本「Effective C++」、「Effective C++」、「Effective STL」を最初のリストに追加したいと思います。 –

1

MFCライブラリを学習する必要があります。私の意見では、特にGUIアプリケーションを作成するための、うまい良いlibです。

+1

IMHO .netとwindowsフォームまたはwxWidgetsはかなり良い選択です - MFCの痛みは*** –

+3

であり、MFCは死んでいます。何かを学ぶつもりなら、新しいことを学んでください。 –

+1

Cleary、MFCは時間の無駄です。 C++でGUIをしたいのであれば、QTを学ぶ必要があります。 – anno

5

最も重要なのは、デバッガです。

あなたがMFC/ATL開発に参加している場合、それらのライブラリはコースから外れています。

デバッグ中に例外を有効にする方法、ディスクパスからデバッグシンボルをロードする方法などは、常に大きな助けになります。

実際、どのような種類のプロジェクトを担当しているかによって実際には異なります。

いくつかの混合モード開発を行っている場合、.NET相互運用性を学ぶことができます。
COMコンポーネントを開発する場合は、ATL + COMを学ぶことができます。

他にもいくつかのフレームワークがありますが、私が言ったように、それは実際にあなたがやっていることに依存しています。

0

標準テンプレートライブラリについて学んでください。 Boost Librariesも見てください。これらの両方(特にSTL)はあなたに多くの時間を節約し、きれいな見た目のコードを作成する必要があります。

0

STLとブーストは、なぜですか? :)また、Win32 APIを学ぶ必要があります。

MFCはまだサポートされていますが、IMHOはC#/ XAMLについて深刻な挑戦者ではありません。

MFCが古すぎるとわかりました。私は2000年代初めに仕事をしてきましたが、面白いことがいくつかありますが、実際にはこれはもうやり直すべき方法ではありません。

+0

私はQtが好きでした。私の意見では、GUIライブラリを使用したいと思っているのであれば、私は確かにQtを使うでしょう。 – yesraaj

+0

私は同意しますが、絶対的な意味では、Windows GUIの場合はC#/ XAMLになります。 –

+0

私は90年代初期にMFCで働いていました。 OTOHでは、小さなMFCアプリをすぐに稼働させるのは非常に簡単ですし、大規模なプロジェクトで80%になるまでは厄介なビットが得られず、次の80%の時間を費やさなければならないことがわかりますMFCはその問題を回避する。 –

0

私はthe .net CLI frameworkが、あなたがPC上でGUIアプリケーションを開発しているかどうかに慣れ親しむために非常に便利なフレームワークになると思います。

wxWidgetsは、GUI開発のためのもう1つの優れたフレームワークです(実際には、他にも非常に便利なビットがたくさんあります)。

2

VCデバッガの学習にはまったく同意します。できるだけ多くの時間を費やしてください。それはあなたの親友かもしれません。
Here's UIのために(私はそこにすべての内容を確認していませんでしたが)、VCデバッガのヒントやトリックのリンク

、私はWTLを見てみたいです。これは、C++で他のUI framworks用コードの膨張

しがちであるMFCよりもかなり小さいEXEファイルを生成します - 私はWinAPIの程度、なぜここの人々のポストの事を理解していないQtwxWidgets