MS VS C++6.0とMSVSC++ 2008の長所/短所は何ですか?
そのような質問をする主な理由は、最新バージョンの代わりに古いバージョンを使用することを好むまともなプログラマーがまだたくさんいるということです。
新しいものより古いものを好む理由はありますか?
MS VS C++6.0とMSVSC++ 2008の長所/短所は何ですか?
そのような質問をする主な理由は、最新バージョンの代わりに古いバージョンを使用することを好むまともなプログラマーがまだたくさんいるということです。
新しいものより古いものを好む理由はありますか?
Visual C++ 6.0 に対する Visual Studio 2008 の利点:
Visual Studio 2008 に移行するデメリット:
Joel の最近のブログ投稿の精神に則り、投稿された他の回答のいくつかを 1 つの回答にまとめました (そして、これをコミュニティ所有の投稿にしたので、私はそれから担当を得ることはありません)。気にしないでください。Laur、NeARAZ、26 人中 17 人、me.yahoo.com、および回答してくれたすべての人に感謝します。-- クリスン
一つには、MSVS 6でビルドされた実行可能ファイルは、現在Windowsに付属しているmsvcrt.dll(Cランタイム)のみを必要とするためかもしれません。
MSVS 2008実行可能ファイルには、msvcrt9が同梱されている(またはすでにインストールされている)必要があります。
さらに、6.0Cランタイムを使用してWindows32ビット用にコンパイル済みのOSSライブラリが多数ありますが、2008 Cランタイムの場合は、ソースを取得して自分でコンパイルする必要があります。
(これらのライブラリのほとんどは、実際にはMinGWでコンパイルされています。MinGWも6.0 Cランタイムを使用しています。これも別の理由です)。
Visual C++ 2008 を使用して開発されたアプリケーションが、Visual C++ 6.0 を使用して開発されたアプリケーションよりも多くの DLL を必要とするわけではないことを付け加えておきます。これはデフォルトのプロジェクト構成です。
プロジェクト プロパティ、C/C++、コード生成に移動し、ランタイム ライブラリを Multi-threaded DLL and Multi-threaded Debug DLL (Release and Debug configuration) からMulti-threaded and Multi-threaded Debugに変更すると、アプリケーションは次のようになります。依存関係が少なくなります。
私の頭の中では、新しい Visual Studio の利点は次のとおりです。
短所:
MS VC6 の STL の実装はスレッドセーフではないことをご存知ですか? 特に、マルチスレッド ライブラリでコンパイルした場合でも、basic_string の参照カウントの最適化が失敗します。 http://support.microsoft.com/kb/813810
VC6以降、Visual Studioの焦点のほとんどはC#と.NET、およびその他の機能にありました。そのため、一部のC ++のベテランは、VC6を古き良き時代と見なしています。Visual Studio for C ++開発者は、当時から状況が改善されていますが、.NETユーザーほど劇的には改善されていません。
VS2008がVC6よりも大幅に優れている1つの方法は、C++プロジェクトを並行して構築できることです。これにより、単一のCPUシステムでもビルドが大幅に高速化される可能性がありますが、特に複数のコアがある場合はそうです。
VS6 のすべてのサービス パックをインストールしても、IDE とコンパイラの組み合わせはしっかりしています。製品を (インターネット経由で) 一般公開しなければならないソフトウェア開発者として、VC++ ランタイムと .NET フレームワークを毎回出荷したくありません (インストーラー/実行可能ファイルに直接バンドルすることはできません。Microsoft によって禁止されています)。 )。キロバイトのコードを実行するのに数メガバイトのランタイムはちょっとばかげています。VC++ 6.0 に必要なのは、せいぜい実行ファイルと 2 つの .DLL だけです。
また、デバッグ ランタイムを VC++ .NET で配布することはできません。製品のデバッグを行う必要があるクライアントがいる場合はあまり良くありません :)
私の意見では、私がまだ VC++ 6.0 を使用している主な理由はありますが、IDE 自体が見にくい (つまり、タブ操作がサポートされていない) からです。私は通常、代わりにコードブロックを使用して IDE の制限を回避します (CodeBlocks は、すべての VC++ バージョンで CL.EXE/LINK.EXE をサポートします)。
コボルフー
上記の展開以外に、MSVC 6.0 の主な利点は速度です。これは 10 年前の IDE であるため、最新のコンピューターでは非常に高速に感じられます。Visual Studio の新しいバージョンでは、より高度な機能が提供されますが、コストがかかります (複雑さと速度の低下)。
しかし、MSVC 6.0 の最大の欠点は、非準拠の C++ コンパイラとライブラリです。本格的な C++ プログラミングを行うつもりなら、これはショーストッパーです。MFC アプリケーションのみをビルドする場合は、おそらくそれほど問題にはなりません。
Visual C++ 6.0 は、Purify、HeapAgent、BoundsChecker、MemCheck などのメモリ追跡ツールと完全かつ適切に統合されています。これは、これらのメモリ追跡ツールが Visual C++ 6.0 の登場後に積極的に維持され、積極的に販売されたためです。
ただし、C++ はしばらくの間流行していなかったため、メモリ追跡ツールを販売している企業は依然としてそれらを販売していますが、Visual Studio 2008 を含む新しい Visual C++ バージョンと更新または統合することはありません。したがって、Visual Studio 2008 でメモリ追跡ツールを使用するいら立たしく、エラーが発生しやすく、場合によっては不可能です。
Visual C ++ 2008は、はるかに標準に準拠しています(Visual Studio6は1998年に設定されたC++標準をサポートしていません)。
VS2008 はより優れたコンパイラを備えています (より多くの標準準拠、より優れた最適化など)。
VS6 の IDE ははるかに高速です。VS2008 IDE には多くの優れた機能がありますが、VS6 よりも低速です。
6.0 から 2008 までの改善点の簡単なリスト:
忘れがちなことの 1 つに、VS 6.0 は 10 年以上前のものです。現時点では、誰もそれを使い続けたいとは思いません。
Visual C++ 6 は、2008 に比べて非常にバグが多い場合があります。
sometemplate<othertemplate<t>>
ないがsometemplate< othertemplate<t>
> 機能する)VS6 での開発は、Internet Explorer 5.5 で Web サイトの見栄えを良くしようとするような気がすることがあります。
大変だったのは、「価値」がキーワードになったことです。