Visual_C++
[Wikipedia|▼Menu]

Visual C++開発元マイクロソフト

最新版2022 / 2023年4月11日 (12か月前) (2023-04-11)
対応OSMicrosoft Windows
プラットフォームx86, x64 (WOW64)
種別統合開発環境
ライセンスMicrosoft EULA(プロプライエタリ)※無償版有
公式サイトwww.visualstudio.com/ja/vs/cplusplus/
テンプレートを表示

Visual C++ (マイクロソフト ビジュアル シープラスプラス;マイクロソフト ヴィジュアル シープラスプラス)とはマイクロソフト製のCC++C++/CLI統合開発環境 (IDE) であり、コンパイラデバッガを含む。通称VCあるいはVC++、MSVCなど。前身はMicrosoft C/C++などがある。
概要

事実上のWindowsの標準開発環境であり、その最適化性能は非常に高い。Visual C++ 7.1 (.NET 2003) からは標準C++規格への準拠度が大きく改善されている[1]。同じバージョンでもいくつかのエディションが存在し、以前は上位エディションしか最適化をサポートしていなかったが、Visual C++ 2005から基本的な最適化はExpressを含む全てのエディションにおいて行なえるようになった。ただし、2005で導入されたプロファイリングに基づく最適化 (Profile Guided Optimization, PGO) は上位エディションのみでサポートされている。

Visual C++ 2005以降はVisual BasicVisual C#などの他の開発言語と統合されたVisual Studioのパッケージとして販売されている。Visual C++ .NET 2003までは言語別製品として販売されていたが、2005以降は行なわれていない。販売されているVisual Studioパッケージから機能を制限した無料版のVisual C++ Express Editionが入手できる。

"Visual"という名称が付けられているが、Visual Basicなどと違ってRADではなく、基本的にはWindows SDK (Windows API) やMFCを使用してコードベースのプログラムを作成することになる(ただしリソースエディタを用いることで、ダイアログウィンドウやメニューの外観デザインのみを視覚的に行うことは以前からできた)。MFCはC++専用クラスライブラリであり、アプリケーションフレームワークの役目も担っているが、基本的にWindows APIの薄いラッパーでしかないため、生産性の点でVisual BasicDelphiのようなRADに及ばない。しかし、Visual C++ 7.0 (.NET 2002) 以降は、後述するマネージ拡張C++あるいはC++/CLIを使用してWindows Formsアプリケーション(もしくはWindows Formsコンポーネント)を開発する場合に限って、フォームエディタを始めとしたVisual C#VB.NETのようなRAD環境を使用できる。また、Visual C++ 11.0 (2012) 以降は、後述するC++/CXを使用してWindowsストアアプリを開発する場合、XAMLエディタを始めとしたRAD環境を使用できる。

また、旧来のWin32/MFCアプリケーション(もしくはDLL)に共通言語基盤 (CLI) のサポートを追加することで、.NET Frameworkのクラスライブラリを併用するハイブリッド開発も行なえる。これにより、例えばVisual C#/VB.NETで.NET基本クラスライブラリを使って開発したロジックライブラリや、Windows Forms/WPFを使って開発したGUI部品を、Win32/MFCアプリケーションで利用する、という相互運用が(制約付きではあるが)可能となっている。

Visual C++ 8.0 (2005) 以降は64ビット命令の生成に対応している。付属するコンパイラには、コンパイラが動作する環境と同じネイティブコードを生成するものと、32bit (x86) 環境で動作して 64bit (x64またはIA-64) ネイティブコードを出力するもの (クロスコンパイラ) がある。32ビット (x86) 環境上であってもクロスコンパイルすることができる。Visual C++ 11.0 (2012) 以降はARMプロセッサ向けのコード生成にも対応している。Visual C++ 14.1 (2017) 以降では、ARM64アーキテクチャのネイティブアプリケーション開発にも対応した (Visual Studio 2017 v15.9以降が必要)[2]

Windows用マルチメディアコンポーネントであるDirectXを使用してアプリケーション開発を行う場合に必要となるヘッダーファイルなどはWindows SDKに含まれているが、DirectX API は主にVisual C++シリーズで利用されることを前提に開発されているため、親和性が非常に高い。なお、Windows SDK 7.1までは最新のDirectX APIや各種ツール類を使用する場合は単独のDirectX SDK(単独の最終バージョンはJune 2010となっている)を別途インストールする必要があったが、Windows SDK 8.0以降は(D3DXライブラリなどの一部を除いて)最新のヘッダーおよびインポートライブラリファイルや各種ツール類がWindows SDKに含まれるようになった。

Visual Studio 2015では、AndroidおよびiOS向けのモバイルアプリケーションを開発できるようになった。ビルドシステムとしてMSBuildが使われるが、コンパイラはMSVCではなくClangが使われる。
言語

Visual C++のコンパイラは、C, C++, C++/CLI, C++/CXのソースコードを入力に受け付ける。

C言語規格に関しては、Visual C++ 9.0 (2008) SP1の時点ではANSI C89 (ISO C90, ISO/IEC 9899:1990) 対応[3]であり、C99C11には対応していない(//で始まるコメントやlong long intなどは言語拡張としてサポートされている)。Visual C++ 12.0 (2013) では、全てではないがC99の関数の大半を追加した[4]。Visual C++ 14.1 (2017) では、C99プリプロセッサの部分的なサポートが追加された (Visual Studio 2017 v15.8以降)[5]。Visual C++ 14.2 (2019) では、C11/C17の必須機能のサポートが追加された (Visual Studio 2019 v16.8以降)[6]

C++言語規格に関しては、Visual C++ 9.0 (2008) SP1の時点でC++98 (ISO/IEC 14882:1998) 規格に対応している[7]。Visual C++ 10.0 (2010) では、auto、decltype、ラムダ式rvalue reference(右辺値参照)、static_assert、nullptrなど、C++11規格で追加された機能を一部規格制定に先行して実装した[8]。Visual C++ 11.0 (2012) では、Strongly typed enums、Forward declared enums、Standard-layout and trivial types、Range-based for-loop などのC++11規格を実装した[9]


次ページ
記事の検索
おまかせリスト
▼オプションを表示
ブックマーク登録
mixiチェック!
Twitterに投稿
オプション/リンク一覧
話題のニュース
列車運行情報
暇つぶしWikipedia

Size:63 KB
出典: フリー百科事典『ウィキペディア(Wikipedia)
担当:undef