什么是C++/CLI? C++/CLI描繪的是一種多元組合,此處的 C++ 當然是指 Bjarne Stroustrup 在 Bell 實驗室發明的C++編程語言。它支持速度和執行 文件的大小都得到優化的靜態對象模型。但除了堆內存分配以外,它不支持運行時程序對對象的更改。它答應對底層機器進行無限制的訪問,但對于正在運行的程序中的活動類型、以及相關的程序基礎構造,它的訪問能力卻非常有限、或者根本就不可能。我在微軟的同事 Herb Sutter,也是C++/CLI的主架構師,認為C++是一個混凝土語言。
“CLI”即公共語言基礎結構(Common Language InfrastrUCture),這是一個支持動態組件編程模型的多層架構。在許多方面,它所表示的對象模型和C++的完全相反。它是一個運行時軟件層 ,一個虛擬執行系統,運行在應用程序和底層操作系統之間。對底層機器的訪問受到相當嚴格的限制。支持對運行中程序的活動類型以及關聯程序的基礎構造 進行存取——發現和建構。斜線“/”表示 C++ 和 CLI 之間的一種綁定(binding),有關這種綁定的細節構成本專欄的常規主題。