Skip to content

MS_VCPlusPlus

nishi_74322014 edited this page Aug 12, 2026 · 2 revisions

VC++

概要

Microsoft Visual C++ は、Microsoft 製の
C、C++、C++/CLI 用 IDE であり、コンパイラやデバッガを含む。

詳細

API

Win32 API

C 言語で実装されている API。

  • Windowsのシステムコール用 API
  • 32 ビットプロセッサで動作する Windows 95、NT 以降で利用できるものを指す。
  • Win16 という語自体は Win32 が登場してから用いられるようになったレトロニム
  • Win64 と言う用語もあるが、Win32 が Windows のシステムコールを意味するため、
    あまり分けて使用されない。

補足: 「Win32 API」は
64 bit Windows でも名称としてそのまま使われる
user32.dll / kernel32.dll という DLL 名も 64 bit 版で同じ)。
32 bit プロセスは WOW64 上で動作する。

WinRT

Modern UI、UWPの開発のための、COM 拡張による高レベル API

補足(最新化): WinRT は現在
Windows App SDK / WinUI 3 の基盤として引き継がれている。
UWP アプリ自体は新規開発非推奨だが、
WinRT API 群(Windows.* 名前空間)はデスクトップ アプリからも呼べる
ようになった(Microsoft.Windows.SDK.NET 経由)。

その他

  • 追加の CRT 関数(MS-DOS 時代由来 / POSIX 互換 / セキュリティ強化)
  • コンパイラ組込関数(MMX, SSE, SSE2、その他 CPU 命令に対応するもの)
  • stdext 名前空間(hash_map / hash_set
  • 同時実行ランタイム (Concurrency Runtime)
  • 並列プログラミング(C++ AMP、OpenMP)

補足: stdext::hash_map
C++11 の std::unordered_map に置き換えられた(非推奨)。
C++ AMP も非推奨(VS 2022 で警告)で、
GPU 計算は CUDA / SYCL / DirectML などに移っている。

拡張

拡張 用途
マネージ拡張 C++ .NET開発 > .NET言語msclr 名前空間
C++/CLI 同上。msclr 名前空間、STL / CLR(STL 風ライブラリ)
C++/CX Modern UI の開発
C++/WinRT UWPの開発

※ ここから、従来の C++ はアンマネージではなくネイティブと形容されるようになった。

補足(それぞれの現在):

拡張 状況
マネージ拡張 C++ 廃止(VS 2005 で C++/CLI に置換)
C++/CLI 現役だが限定的。.NET Core 3.1 以降で Windows 専用としてサポート。主用途は「ネイティブ ↔ マネージドの橋渡し」
C++/CX 非推奨(C++/WinRT が後継)
C++/WinRT 現役。標準 C++17 のみで書ける(言語拡張なし)

C++/CLI は今も
既存の C/C++ 資産を .NET から呼ぶラッパーとして実用的である
マネージドコードとアンマネージドコードのブリッジを参照)。

なお、単純な API 呼び出しなら P/Invoke
.NET 7 以降は **LibraryImport(ソース生成による P/Invoke)**の方が
手軽で、C++/CLI を持ち出す必要は無い。

参考


Tags: 移行, .NET開発, プログラミング, 移行

NetDevInfraWiki

マイクロソフト系技術情報 Wiki
Open 棟梁 Wiki

(未着手)

開発基盤部会 Wiki

移行管理: DONETODO

Clone this wiki locally