-
Notifications
You must be signed in to change notification settings - Fork 0
MS_VCPlusPlus
- 戻る(その他、開発の色々)
- VC++
- .NET言語
- C++/C++ のメモリ・リーク
Microsoft Visual C++ は、Microsoft 製の
C、C++、C++/CLI 用 IDE であり、コンパイラやデバッガを含む。
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 上で動作する。
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 を持ち出す必要は無い。
-
Microsoft Visual C++ - Wikipedia
https://ja.wikipedia.org/wiki/Microsoft_Visual_C%2B%2B -
Windows 10のソースコードは何で書かれている?:Microsoftのカーネルエンジニアが回答 - @IT
https://www.atmarkit.co.jp/ait/articles/1904/16/news050.html -
Microsoft C++ ドキュメント | Microsoft Learn
https://learn.microsoft.com/cpp/ -
DLL作成手順(
MS_DLLCreation.md) -
VC++バージョンアップ(
MS_VCPlusPlusUpgrade.md)
Tags: 移行, .NET開発, プログラミング, 移行
このWikiは「Open棟梁Project」,「OSSコンソーシアム 開発基盤部会」によって運営されています。