10

MS VS C++6.0とMSVSC++ 2008の長所/短所は何ですか?

そのような質問をする主な理由は、最新バージョンの代わりに古いバージョンを使用することを好むまともなプログラマーがまだたくさんいるということです。

新しいものより古いものを好む理由はありますか?

4

14 に答える 14

28

Visual C++ 6.0 に対する Visual Studio 2008 の利点:

  • より標準に準拠した C++ コンパイラと、より優れたテンプレート処理
  • x64 / モバイル / XBOX ターゲットのサポート
  • 改善された STL 実装
  • C++0x TR1 のサポート (スマート ポインター、正規表現など)
  • セキュア C ランタイム ライブラリ
  • コード ナビゲーションの改善
  • 改善されたデバッガー; リモートデバッグセッションを実行する可能性
  • コンパイラの最適化の改善
  • 多くのバグ修正
  • マルチコア/マルチ CPU システムでの高速ビルド
  • 多くの優れた機能を備えた改善された IDE ユーザー インターフェイス
  • IDE でのマクロ サポートの改善。DTE では、より多くの IDE メソッドと変数にアクセスできます
  • 更新された MFC ライブラリ (VS2008 Service Pack 1)
  • OPENMP (easy multithreading) のサポート (VS2008 pro のみ)

Visual Studio 2008 に移行するデメリット:

  • IDE は VS6 よりかなり遅い
  • Intellisense にはまだパフォーマンスの問題があります (VisualAssistX に置き換えると解決します)
  • サイド バイ サイド アセンブリにより、アプリの展開がさらに困難になります
  • ローカル (オフライン) MSDN ライブラリが非常に遅い
  • ここで述べたように、Professional バージョンにはプロファイラーはありません。

Joel の最近のブログ投稿の精神に則り、投稿された他の回答のいくつかを 1 つの回答にまとめました (そして、これをコミュニティ所有の投稿にしたので、私はそれから担当を得ることはありません)。気にしないでください。Laur、NeARAZ、26 人中 17 人、me.yahoo.com、および回答してくれたすべての人に感謝します。-- クリスン

于 2008-09-15T12:48:48.777 に答える
4

一つには、MSVS 6でビルドされた実行可能ファイルは、現在Windowsに付属しているmsvcrt.dll(Cランタイム)のみを必要とするためかもしれません。

MSVS 2008実行可能ファイルには、msvcrt9が同梱されている(またはすでにインストールされている)必要があります。

さらに、6.0Cランタイムを使用してWindows32ビット用にコンパイル済みのOSSライブラリが多数ありますが、2008 Cランタイムの場合は、ソースを取得して自分でコンパイルする必要があります。

(これらのライブラリのほとんどは、実際にはMinGWでコンパイルされています。MinGWも6.0 Cランタイムを使用しています。これも別の理由です)。

于 2008-09-15T12:40:47.440 に答える
4

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に変更すると、アプリケーションは次のようになります。依存関係が少なくなります。

于 2008-09-15T13:30:29.817 に答える
3

私の頭の中では、新しい Visual Studio の利点は次のとおりです。

  • 基準へのより厳格な準拠
  • x64 / モバイル / XBOX ターゲットのサポート
  • コンパイラの最適化の改善
  • (方法) より良いテンプレート処理
  • 改善されたデバッガー; リモートデバッグセッションを実行する可能性
  • IDE の改善
  • マクロサポートの改善。DTE では、より多くの IDE メソッドと変数にアクセスできます

短所:

  • IDEが遅いようです
  • Intellisense にはまだパフォーマンスの問題があります (VisualAssistX に置き換えると解決します)
  • ランタイムは普遍的に利用できない
  • ソース管理の統合は標準に達していません (公平を期すために、VC6 にはこの機能が完全に欠けています)。
于 2008-09-15T13:33:00.653 に答える
2

MS VC6 の STL の実装はスレッドセーフではないことをご存知ですか? 特に、マルチスレッド ライブラリでコンパイルした場合でも、basic_string の参照カウントの最適化が失敗します。 http://support.microsoft.com/kb/813810

于 2008-09-15T17:29:22.457 に答える
1

VC6以降、Visual Studioの焦点のほとんどはC#と.NET、およびその他の機能にありました。そのため、一部のC ++のベテランは、VC6を古き良き時代と見なしています。Visual Studio for C ++開発者は、当時から状況が改善されていますが、.NETユーザーほど劇的には改善されていません。

VS2008がVC6よりも大幅に優れている1つの方法は、C++プロジェクトを並行して構築できることです。これにより、単一のCPUシステムでもビルドが大幅に高速化される可能性がありますが、特に複数のコアがある場合はそうです。

于 2008-09-15T17:06:43.213 に答える
1

VS6 のすべてのサービス パックをインストールしても、IDE とコンパイラの組み合わせはしっかりしています。製品を (インターネット経由で) 一般公開しなければならないソフトウェア開発者として、VC++ ランタイムと .NET フレームワークを毎回出荷したくありません (インストーラー/実行可能ファイルに直接バンドルすることはできません。Microsoft によって禁止されています)。 )。キロバイトのコードを実行するのに数メガバイトのランタイムはちょっとばかげています。VC++ 6.0 に必要なのは、せいぜい実行ファイルと 2 つの .DLL だけです。

また、デバッグ ランタイムを VC++ .NET で配布することはできません。製品のデバッグを行う必要があるクライアントがいる場合はあまり良くありません :)

私の意見では、私がまだ VC++ 6.0 を使用している主な理由はありますが、IDE 自体が見にくい (つまり、タブ操作がサポートされていない) からです。私は通常、代わりにコードブロックを使用して IDE の制限を回避します (CodeBlocks は、すべての VC++ バージョンで CL.EXE/LINK.EXE をサポートします)。

コボルフー

于 2009-08-11T03:29:49.747 に答える
1

上記の展開以外に、MSVC 6.0 の主な利点は速度です。これは 10 年前の IDE であるため、最新のコンピューターでは非常に高速に感じられます。Visual Studio の新しいバージョンでは、より高度な機能が提供されますが、コストがかかります (複雑さと速度の低下)。

しかし、MSVC 6.0 の最大の欠点は、非準拠の C++ コンパイラとライブラリです。本格的な C++ プログラミングを行うつもりなら、これはショーストッパーです。MFC アプリケーションのみをビルドする場合は、おそらくそれほど問題にはなりません。

于 2008-09-15T12:49:57.933 に答える
1

Visual C++ 6.0 は、Purify、HeapAgent、BoundsChecker、MemCheck などのメモリ追跡ツールと完全かつ適切に統合されています。これは、これらのメモリ追跡ツールが Visual C++ 6.0 の登場後に積極的に維持され、積極的に販売されたためです。

ただし、C++ はしばらくの間流行していなかったため、メモリ追跡ツールを販売している企業は依然としてそれらを販売していますが、Visual Studio 2008 を含む新しい Visual C++ バージョンと更新または統合することはありません。したがって、Visual Studio 2008 でメモリ追跡ツールを使用するいら立たしく、エラーが発生しやすく、場合によっては不可能です。

于 2008-09-15T13:25:58.063 に答える
0

Visual C ++ 2008は、はるかに標準に準拠しています(Visual Studio6は1998年に設定されたC++標準をサポートしていません)。

于 2008-09-15T12:42:27.980 に答える
0

VS2008 はより優れたコンパイラを備えています (より多くの標準準拠、より優れた最適化など)。

VS6 の IDE ははるかに高速です。VS2008 IDE には多くの優れた機能がありますが、VS6 よりも低速です。

于 2008-09-15T12:44:29.443 に答える
0

6.0 から 2008 までの改善点の簡単なリスト:

  • 多くのバグ修正
  • C++ 標準への適合性の向上
  • コンパイラの最適化の改善
  • UI の改善 (インテリセンスの向上など)

忘れがちなことの 1 つに、VS 6.0 は 10 年以上前のものです。現時点では、誰もそれを使い続けたいとは思いません。

于 2008-09-15T12:45:32.887 に答える
0

Visual C++ 6 は、2008 に比べて非常にバグが多い場合があります。

  • 不十分なテンプレートのサポート/奇妙な点 (たとえば、機能しsometemplate<othertemplate<t>>ないがsometemplate< othertemplate<t>> 機能する)
  • 規格に準拠していません
  • リソース エディタがゴミです (「青い線」がランダムに動き回るように見えるなど)
  • 特定の種類の 8 ビット ビットマップの編集のみをサポートします (imagemagick を使用して、paint.net に保存されたビットマップを画像リソースで表示できるように変換する必要があります)
  • 読み取り専用ファイルの操作に対するひどいサポート / 風変わりなソースセーフ統合。

VS6 での開発は、Internet Explorer 5.5 で Web サイトの見栄えを良くしようとするような気がすることがあります。

于 2008-12-18T21:54:22.670 に答える
0

大変だったのは、「価値」がキーワードになったことです。

于 2008-09-15T13:06:56.300 に答える