|
.NET Framework と名がつくものの機能は manage と呼ばれる機構の上に成り立っている。 C# や VB (VB6 は除く) で作ったプログラムは、この「マネージ」機構の上で動作している。
一方 C++ で作ったプログラムは、この「マネージ」機構を使っていない。 native とか unmanage とか呼ばれているわけだ。
マネージ機構とアンマネージ(ネイティブ)機構とは設計思想のスタート自体がまったく違っている。 開発の新旧の都合で ・マネージ機構の中から、部分的にアンマネージ機構の機能を使うことは考慮済み ・アンマネージ機構の中からは、尋常の方法ではマネージ機構を使うことはできない という特徴がある。
「 .NET が提供する便利な機能」はすべてマネージなので、これらを VC++ のアンマネージコードから直接簡単に使うことは不可能と言っていい。
C++ 言語でなく C++/CLI 言語という似て非なる言語を使うと C++ の文法でマネージ機構を使えるけど (それはすなわちアンマネージコードではなくなってしまうということ) 現在 C++/CLI を積極的に使う理由は無くて(解説にあるとおり、相互運用の目的でのみ使う) それならば C# にいっちゃうほうが圧倒的に簡単。
結論 MSVC++ という「製品」は pure C++ と C++/CLI の2種類の異なる言語をサポートしている。 .NET の機能を使うなら C++/CLI でプログラムを書けばよい(が、非推奨) pure C++ から .NET の機能を使うことは困難。
その意味で MSVC++ で .NET の機能を使えるか?という質問の答えは Yes ただし、そのときの言語はもはや C++ ではなくて C++/CLI C++/CLI での新規開発は非推奨
|