Visual C++ 2008 の新機能
更新 : 2007 年 11 月
このトピックでは、Visual Studio 2008 リリースにおける新機能と変更点について説明します。
Visual C++ 統合開発環境 (IDE: Integrated Development Environment)
新機能 |
説明 |
ATL、MFC、および Win32 の各アプリケーション内に作成したダイアログ ボックスが、Windows Vista スタイル ガイドラインに準拠するようになりました。 |
Visual Studio 2008 を使用して新しいプロジェクトを作成した場合、アプリケーション内に挿入したダイアログ ボックスはすべて、Windows Vista スタイル ガイドラインに準拠します。旧バージョンの Visual Studio で作成したプロジェクトを再コンパイルした場合、既存のダイアログ ボックスは以前と同じ外観になります。アプリケーションにダイアログ ボックスを挿入する方法の詳細については、「ダイアログ エディタ」を参照してください。 |
ATL プロジェクト ウィザードに、すべてのユーザーについてコンポーネントを登録するオプションが追加されました。 |
Visual Studio 2008 から、ATL プロジェクト ウィザードで作成された COM コンポーネントとタイプ ライブラリは、[すべてのユーザーについてコンポーネントを登録] を選択した場合を除いてレジストリの HKEY_CURRENT_USER ノードに登録されます。詳細については、「[アプリケーションの設定] (ATL プロジェクト ウィザード)」を参照してください。 |
ATL プロジェクト ウィザードから、属性付き ATL プロジェクトを作成するオプションがなくなりました。 |
Visual Studio 2008 から、ATL プロジェクト ウィザードには新しいプロジェクトの属性付きステータスを変更するオプションがありません。ウィザードで作成される新しい ATL プロジェクトはすべて属性なしになります。 |
レジストリへの書き込みをリダイレクトできるようになりました。 |
Windows Vista の導入に伴い、レジストリの一部の領域への書き込みの際に、プログラムをシステム特権のあるモードで実行することが必要になりました。Visual Studio を常にシステム特権のあるモードで実行することは望ましくありません。ユーザーごとのリダイレクトにより、プログラミングを変更せずに、レジストリへの書き込みを HKEY_CLASSES_ROOT から HKEY_CURRENT_USER に自動的にリダイレクトできます。詳細については、「[リンカ] プロパティ ページ」を参照してください。 |
クラス デザイナで、ネイティブ C++ コードが限定的にサポートされるようになりました。 |
以前のバージョンの Visual Studio では、クラス デザイナは Visual C# と Visual Basic でしか使用できませんでした。C++ ユーザーも、読み取り専用モードでのみクラス デザイナを使用できるようになりました。C++ でクラス デザイナを使用する方法の詳細については、「クラス デザイナにおける Visual C++ コードの使用」を参照してください。 |
Visual C++ のライブラリ
全般
新機能 |
説明 |
アプリケーションを特定のバージョンの Visual C++ ライブラリにバインドできるようになりました。 |
アプリケーションが、Visual C++ ライブラリのリリース後に加えられた更新に依存している場合があります。その場合、以前のバージョンのライブラリが使用されているコンピュータでアプリケーションを実行すると、予期しない動作が発生する可能性があります。以前のバージョンのライブラリが使用されているコンピュータでアプリケーションが実行されないように、アプリケーションを特定バージョンのライブラリにバインドできるようになりました。詳細については、「アプリケーションの再配布と特定のライブラリへのバインド」を参照してください。 |
STL/CLR ライブラリ
新機能 |
説明 |
Visual C++ に STL/CLR ライブラリが追加されました。 |
STL/CLR ライブラリは、標準 C++ ライブラリのサブセットである標準テンプレート ライブラリ (STL: Standard Template Library) のパッケージであり、C++ と .NET Framework の共通言語ランタイム (CLR: Common Language Runtime) で使用します。STL/CLR を使用すると、マネージ環境で STL のすべてのコンテナ、反復子、アルゴリズムを利用できます。 |
MFC ライブラリ
新機能 |
説明 |
Windows Vista でコモン コントロールがサポートされるようになりました。 |
Windows Vista の機能のサポートまたは現在の MFC クラスの機能向上のために、18 の新規または既存のクラスに 150 以上のメソッドが追加されました。 新しい CNetAddressCtrl クラスを使用すると、IPv4 アドレス、IPv6 アドレス、または DNS 名を入力して検証できます。新しい CPagerCtrl クラスを使用すると、Windows のページャ コントロールを簡単に使用できます。また、新しい CSplitButton クラスを使用すると、Windows の分割ボタン コントロールを簡単に使用して既定またはオプションのアクションを選択できます。 |
C++ サポート ライブラリ
新機能 |
説明 |
C++ にマーシャリング ライブラリが導入されました。 |
マーシャリング ライブラリを使用すると、最適化された簡単な方法で、ネイティブ環境とマネージ環境との間でデータのマーシャリングを行うことができます。このライブラリは、C++ での明示的な PInvoke (DllImport 属性) の使用方法などの、より複雑で非効率的な方法の代わりに使用できます。詳細については、「C++ におけるマーシャリングの概要」を参照してください。 |
ATL Server
新機能 |
説明 |
ATL Server が共有ソース プロジェクトとしてリリースされるようになりました。 |
ATL サーバーのほとんどのコード ベースは CodePlex 上で共有ソース プロジェクトとしてリリースされており、Visual Studio 2008 の一部としてはインストールされません。ATL サーバーに関連付けられているファイルのいくつかは、Visual Studio に含まれなくなりました。削除されたファイルの一覧については、「削除された ATL Server ファイル」を参照してください。 atlenc.h の関数とユーティリティ関数のデータ エンコード/デコード クラス、および atlutil.h と atlpath.h のクラスが ATL ライブラリに追加されました。 Microsoft は、以前のリリースの Visual Studio に含まれていたバージョンの ATL Server を、そのバージョンの Visual Studio がサポートされている間は引き続きサポートします。CodePlex は ATL Server コードの開発をコミュニティ プロジェクトとして続行します。Microsoft は CodePlex バージョンの ATL Server をサポートしません。 |
Visual C++ のコンパイラとリンカ
コンパイラに関する変更点
新機能 |
説明 |
コンパイラでマネージ インクリメンタル ビルドがサポートされるようになりました。 |
このオプションを指定した場合、コンパイラは参照アセンブリが変更されたときにコードを再コンパイルしません。代わりに、インクリメンタル ビルドを実行します。ファイルの再コンパイルは、変更が依存コードに影響する場合にのみ実行されます。詳細については、「[全般] プロパティ ページ (プロジェクト)」を参照してください。 |
ATL Server 関連の属性はサポートされなくなりました。 |
コンパイラで、ATL Server に直接関連付けられていたいくつかの属性がサポートされなくなりました。削除された属性の一覧については、「互換性に影響する変更点」を参照してください。 |
コンパイラで Intel Core Microarchitecture がサポートされるようになりました。 |
コンパイラで、コード生成中に Intel Core Microarchitecture 用の調整が行われます。この調整は既定で実行され、Pentium 4 およびその他のプロセッサにも役立つため無効にはできません。 |
組み込み命令で AMD および Intel の新しいプロセッサがサポートされるようになりました。 |
いくつかの新しい組み込み命令で、AMD および Intel の新しいプロセッサの高度な機能がサポートされています。新しい組み込み命令の詳細については、「Supplemental Streaming SIMD Extensions 3 Instructions, Streaming SIMD Extensions 4 Instructions」、「SSE4A and Advanced Bit Manipulation Intrinsics」、「AES Intrinsics」、「_mm_clmulepi64_si128」、および「__rdtscp」を参照してください。 |
__cpuid 関数が更新されました。 |
__cpuid 関数で、最新バージョンの AMD および Intel のプロセッサの新機能がサポートされるようになりました。新しい __cpuidex 組み込み関数を使用すると、最新のプロセッサについてより詳細な情報を収集できます。 |
/MP コンパイラ オプションにより、合計ビルド時間の短縮が可能になりました。 |
/MP オプションを使用すると、ファイルを同時にコンパイルするいくつかのプロセスを作成することにより、複数のソース ファイルをコンパイルする合計時間を大幅に短縮できます。このオプションは、ハイパースレッド、複数のプロセッサ、または複数のコアをサポートするコンピュータで特に便利です。 |
/Wp64 コンパイラ オプションおよび __w64 キーワードは使用されなくなりました。 |
64 ビット移植性の問題を検出する /Wp64 コンパイラ オプションと __w64 キーワードは使用されなくなり、コンパイラの将来のバージョンでは削除される予定です。このコンパイラ オプションとキーワードの代わりに、64 ビット プラットフォームが対象の Visual C++ コンパイラを使用してください。詳細については、「Visual C++ による 64 ビット プログラミング」を参照してください。 |
/Qfast_transcendentals |
超越関数のインライン コードを生成します。詳細については、「/Qfast_transcendentals (超越関数高速化の強制)」を参照してください。 |
/Qimprecise_fwaits |
/fp:except コンパイラ オプションの使用時に、try ブロック内部の fwait を削除します。詳細については、「/Qimprecise_fwaits (try ブロック内部の fwaits を削除する)」を参照してください。 |
リンカに関する変更点
新機能 |
説明 |
Visual C++ リンカ (link.exe) で、実行可能ファイルのマニフェスト ファイルにユーザー アカウント制御情報が組み込まれるようになりました。 |
この機能は既定で有効になっています。詳細については、「ユーザー アカウント制御 (UAC: User Account Control) がアプリケーションに与える影響」を参照してください。この機能を無効にする方法および既定の動作を変更する方法については、「/MANIFESTUAC (UAC 情報をマニフェストに組み込む)」を参照してください。 |
Windows Vista の Address Space Layout Randomization 機能を有効にする /DYNAMICBASE オプションがリンカに追加されました。 |
このオプションは、ロード時にアプリケーションをランダムに再ベースするかどうかを示すように実行可能ファイルのヘッダーを変更します。詳細については、「/DYNAMICBASE (ASLR (Address Space Layout Randomization) の使用)」を参照してください。 |
Visual C++ のサンプル
Visual Studio 2008 用の新しいサンプル
新機能 |
説明 |
CFileDialog を作成する場合に生成されるイベントを示すカスタム ダイアログ ボックスを作成します。 |
|
コマンド リンク ボタン (CButton)、ページャ コントロール (CPagerCtrl)、分割ボタン (CSplitButton)、およびネットワーク アドレス コントロール (CNetAddressCtrl) など、Windows Vista の MFC で利用できる新しいコントロールについて示します。 |
|
Windows Vista の "ネット アドレス検証ツール" コントロールの使用例を示します。 |
|
STL/CLR ライブラリを使うときに利用できるいくつかの機能を示します。 |
Visual C++ Express Edition
Visual C++ Express Edition への追加
新機能 |
説明 |
Visual C++ Express Edition に Windows SDK が追加されました。 |
Visual C++ Express Edition のユーザーは、Windows SDK をダウンロードして個別にインストールしなくても使用できるようになりました。また、Win32 プロジェクト ウィザードも Visual C++ Express Edition に追加されました。 |
関連項目
項目 |
説明 |
互換性に影響する Visual C++ 2008 の変更点の一覧を示します。 |
|
他のプラットフォームからの移植および Visual C++ の以前のリリースからのアップグレードに関する情報へのリンクを提供します。 |
|
Visual C++ プロジェクトの旧バージョンからのアップグレードに関するリンクを提供します。 |