C++托管扩展

✍ dations ◷ 2025-11-04 15:01:04 #C++托管扩展

C++托管扩展(Managed Extensions for C++)是对C++的一个属性和关键字的扩展,以便于在微软公司的.NET Framework进行编程。它也经常被称为托管C++。2002年由微软发布。

托管C++并非独立存在的编程语言,而仅仅是微软对C++的一个语法扩展,允许C++程序员在.NET框架和CLR的基础上进行托管编程。与C#和Visual Basic .NET相比,其主要优点是旧代码可以比较快地移植到新的平台上,而且即使不完全重写代码,也可以通过互操作在同一个模块中无缝集成托管和非托管代码,从新的.Net框架中获益。

.Net框架封装了大量的API,例如网络访问、字符串操作、数据访问、XML服务、图形界面控件库、邮件服务、加密服务、文件输入/输出,甚至是WMI管理,也使得应用程序员可以编写更加简洁的代码。目前只有托管C++及其后继者C++/CLI可以做到无缝集成托管和非托管代码,而在托管代码中调用COM的速度又相当慢,所以经常被用于其他语言和非托管代码之间的桥梁。

托管C++允许程序员编写托管代码,内存管理的工作现在可以让CLR去自动处理,访问时也增加了类型检查,减少了缓冲区溢出和内存泄漏的危险,增加了程序的稳定性,但是在性能敏感的应用中,庞大的.NET框架和缓慢的自动内存管理并不是必要的,传统非托管代码仍然是一些人的首选。

在面向对象编程方面,主要的变化是对多重继承的限制,这是因为CLR的限制和内存管理的需要。一个托管类不能多继承基类。同时,类属性和微软中间语言(MSIL)的引入也使得托管类可以在其他语言中使用和继承。

与此同时,托管C++引入了大量的关键字和语义转换,减少了代码的可读性和明确性。缺少在很多语言中都支持的泛型和for each语句也增加了其他语言的程序员转向托管C++的困难。在其后继者C++/CLI中泛型和for each语句才被支持。

以下列出面向对象编程与 unmanaged C++ 之间的差异性。

//hello.cpp//new using directive#using <mscorlib.dll>//another using namespace directive.using namespace System;int main()  {  Console::WriteLine("Hello");  return 0;}

一个新的前置处理引导(preprocessor directive)

   #using <mscorlib.dll>

这是必须的。此外 #using directives 必须用 namespace 的方法来 import 更多的库(libraries),像是 Base Class Library,例如:

  #using <System.Windows.Forms.dll>

以及

  using namespace System::Windows::Forms;

来使用 Windows Forms。

   cl.exe hello.cpp /clr

/clr enables any code referencing the .NET Framework to be compiled as CIL。

//gc.cpp#using <mscorlib.dll>__gc class gc  {  int* i;  char* g;  float* j;};int main()  {  while(true)  {    gc* _gc = new gc();  }  return 0;}

比较 Managed C++

以下列出 Managed C++ 与其它编程语言在类似观念上的差异。

缺点

优点

缺点



相关

  • 浅草浅草(日语:浅草/あさくさ Asakusa */?),本身既是日本东京都台东区的一个地名,也是以浅草寺为中心的周边繁华街区的总称。在近年东京都内实行区份合并以前,浅草本来是东京都内的一
  • 佐内佐内(意大利语:Zone),是意大利布雷西亚省的一个市镇。总面积19平方公里,人口1111人,人口密度58.5人/平方公里(2009年)。国家统计(ISTAT)代码为017205。
  • 第23届日本电影学院奖第23回日本电影学院奖于2000年3月10日公布并举行颁奖仪式。
  • 发条宇宙在科学史上,发条宇宙把宇宙比喻作机械钟。它是一台完美的机器,一直运转。其机器受物理定律控制,从而使机器在各个方面都可预测的。这个观点在启蒙时代中受到自然神论者广泛欢迎
  • 阵内贵美子阵内贵美子(日语:陣内 貴美子/じんない きみこ ,1964年3月12日-),日本已退役女子羽毛球运动员、体育记者,出生于熊本县八代市。阵内贵美子与北田スミ子一起获得1986年亚洲运动会羽
  • 王惠美王惠美(1968年11月22日-) ,中国国民党籍彰化县政治人物,现任彰化县县长,曾任立法委员、鹿港镇镇长、彰化县议员。王惠美继承父志担任鹿港镇长;2012年因泛蓝分裂而以420票之差惊险进
  • 2017年葡语系运动会2017年葡语系运动会(第四届葡语系运动会)是以葡萄牙语作桥梁的一个综合性运动会;运动会将于2017年于莫桑比克马布多举行。葡萄牙于2006年获得2009年葡语系运动会主办权后,巴西及
  • 145街车站 (IRT百老汇-第七大道线)145街车站(英语:145th Street station)是美国纽约地铁IRT百老汇-第七大道线一个慢车地铁站,位于曼哈顿哈莱姆区和汉密尔顿高地(英语:Hamilton Heights, Manhattan)145街(英语:145th Street (Manhattan))及百老汇交界,设有1号线(任何时候停站)列车服务。此站设有两个侧式月台和三条轨道。北行慢车轨道与中央轨道于车站北段合并,双线继续向北行驶。往南到103街车站的一段中央轨道不营运。两个侧式月台有少许偏差,北行月台稍为偏南。车站南侧设有
  • 是安是安(1979年10月6日-),男,上海人,中国大陆影视演员。毕业于上海师范大学谢晋影视艺术学院。1979年,是安出生在上海市,曾就读于上海师范大学谢晋影视艺术学院。
  • THE RAMPAGE from EXILE TRIBETHE RAMPAGE from EXILE TRIBE (THE RAMPAGE from 放浪一族) 是一个日本16人男子团体,由3位主唱、13位表演者组成。隶属于LDH经纪公司。唱片公司为rhythm zone。团体名称的RAMPAGE有“横冲直撞”的意思。曾担任GENERATIONS支援成员顺位为Oricon公信榜周间榜最高排行