WindowsにおけるC++
Microsoft 公式
Windows SDK
ビルドに必要なツールのみの配布
Visual Studio
IDE
Native C++ (ネイティブC++)
昔ながらの Win32API を呼び出して使うもの。
ネイティブなバイナリ(アセンブラ)としてコンパイルされて EXE ファイルが作られる。
アンマネージドコード(Unmanaged code)と呼ばれる。
現役。
Managed C++ (マネージドC++)
.NET の共通言語ランタイム (CLR)に対応。ネイティブなバイナリも出力できる。
共通言語ランタイムで動くコードがマネージドコード(Managed code)
時代遅れ。C++/CLI へ移行
C++/CLI
.NET 用に寄せて作られた C++ もどき。
時代遅れ。C++/CX へ移行
C++/CX
マネージドコードを出力する。
UWP 用に拡張された C++
時代遅れ。C++/WinRT へ移行
C++/WinRT
マネージドコードを出力する。
WinUI を使うならこれ一択
現役。
Win32API
ネイティブコードで呼び出す Windows の API
MFC
Microsoft Foundation Classes
遥か昔から使われている GUI 用ライブラリ
Native C++ 用
いまだ現役
COM
Component Object Model
UI部品やクラス・オブジェクトを取り扱えるようにしたインターフェース仕様
IUnknown インターフェース、CreateObject
Active X
Webブラウザの埋め込みオブジェクトの仕様
COM を基盤として作られている。
脆弱性問題に伴い、Java Applet、Flash などとともに絶滅。
OLE
Object Linking and Embedding
ドキュメントの埋め込みオブジェクトの仕様
COM を基盤として作られている。
ATL
Active Template Libarary
Active X (COM) を Native C++ から簡単に扱えるようにしたテンプレートライブラリ
WTL
Windows Template Library
主に GUI 用のテンプレートライブラリ
MFC に取って代わるもの。
.NET (.NET Framework)
CLI を基盤とした体系。言語やライブラリ。
言語としては以下がある
C#
Managed C++
F#
VB.NET (時代遅れ) Visual Basic の .NET 版
J# (時代遅れ) Java の .NET 版
CLI
Common Language Infrastructure
共通言語基盤
.NET からこれが基盤となった。
WinRT
Windows Runtime
CLI が基盤になっている。
位置付けとしては CLI 版 Windows 用 API (Win32API相当) になる。
WRL
Windows ランタイム C++ テンプレートライブラリ
Windows Runtime C++ template Library
Native C++ から WinRT を呼び出せるようにした低レベルライブラリ
UWP
Universal Windows Platform
CLI が基盤になっている。
WinRT の後継
WinUI 2
WinUI
最新は Win UI 3
サードパーティーの環境
MinGW
参考
WindowsのUIフレームワークの歴史。Win32からWinUI 3まで