C++/CLI
ネイティブC++とマネージド.NETの両方を1つのプロジェクトで扱えるMicrosoftの言語拡張。ネイティブDLLとC#の間に薄いラッパー層を作るのに使われる。
- 概念URI
https://comcomponent.com/knowledge/cpp-cli/
- 別名・表記
- C++/CLIラッパー
- 最終確認日
- 2026-08-01
- 機械可読データ
- JSON-LD
この概念が関わる関係
- C++/CLIはC++のクラス中心のネイティブライブラリに対する本記事の推奨です。相手がC++のクラス中心のライブラリで、所有権・文字列・配列・例外・コールバックが絡むなら、C++/CLIで薄いラッパーを1枚挟むほうが保守しやすい / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- C++/CLIをフラットなC APIに用いることは推奨されません。相手が最初からきれいなC APIを公開しているなら、C++/CLIよりP/Invokeのほうが素直である / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- C++/CLIはマーシャリングを利用します。C++/CLIラッパーは境界でmarshal_asなどを使い、.NETの型とネイティブの型を相互に変換する / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- C++/CLIはDispose/Finalizeパターン(C++/CLI)の実装を担います。C++/CLIのデストラクター(~T())とファイナライザー(!T())は、コンパイラーによってそれぞれIDisposable.Dispose()とObject.Finalizeに変換される / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- C++/CLIは所有権・寿命管理を前提とします。C++/CLIラッパーはネイティブ側の所有権・寿命の前提をC++側で受け止め、.NET側にはIDisposableとして安定した形を見せる / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- C++/CLIは例外の.NET変換の実装を担います。C++/CLIラッパーはtry/catchでネイティブのC++例外を受け、意味のある.NET例外に変換して投げ直せる / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- C++/CLIはコールバックのデリゲート寿命管理を前提とします。ネイティブ側にコールバックがある場合、その登録と解除をC++側に閉じ込めることで、C#側にはイベントやデリゲートだけを見せ、デリゲートの寿命管理をラッパー内に集約できる / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- C++/CLIはNative AOTと両立しません。Native AOTの非対応リストにC++/CLIが明記されており、PublishAotで単一のネイティブバイナリにする方針とは両立しない / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- C++/CLIはijwhost.dllを前提とします。.NET(Core系)をターゲットにするC++/CLIの出力には、ijwhost.dllを配置する必要がある(.NET Framework向けの出力では不要) / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- C++/CLIは/clrコンパイルオプションで構成できます。C++/CLIは/clrコンパイルオプションを指定してビルドし、これによりMSVCランタイム(/MD)も有効になる / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- C++/CLIは混合アセンブリの実装を担います。C++/CLIラッパーはネイティブの機械語命令とMSILの両方を含む混合アセンブリとしてビルドされる / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- C++/CLIはC APIブリッジ層の後継に当たります。C++のクラスライブラリを相手にする場合、C++/CLIラッパーは、P/Invoke向けに手書きするCブリッジ層に代わる位置づけになる / 確度: 条件付きの関係 / 確認日: 2026-08-01 出典
- C++/CLIはクロスプラットフォーム要件と両立しません。C++/CLIはWindows前提の技術であり、クロスプラットフォームが必要な場合は選択できない / 確度: 確立した関係 / 確認日: 2026-08-01 出典
- C++/CLIはC#からC++ライブラリを自然に扱う要件に対する本記事の推奨です。C#からC++ライブラリを自然に扱いたい場合は、C++の型や所有権、例外を吸収しやすいC++/CLIが向く。 / 確度: 確立した関係 / 確認日: 2026-08-01 出典
この概念を扱う記事
一次資料
このページはサイトの知識グラフ(_data/knowledge/)から自動生成されています。誤りの指摘はお問い合わせからお願いします。