托管是.NET的一个专门概念,它倡导一种新的编程理念,因此我们完全可以把“托管”视为“.NET”。C++托管扩展(Managed Extension for C++,即MC++)是微软为了让Visual C++可以支持托管的引用程序的开发而对传统C++语言进行的扩展,是新一代Visual C++开发工具的语言核心。对Microsoft Visual C++语言进行扩展可以生成.NET代码,这些扩展称为C++.NET托管扩展C++是惟一一种可以在同一个源文件中混合.NET代码和非托管代码的语言,是真正的.NET系统语言。在托管C++中,托管类和非托管类是可以相互使用各自的特征,但托管类能够封装.NET框架中的组件,且最大限度地使用.NET框架中的特性,而传统的C++类是使用MFC和ATL来设计的,用来编制基于Windows环境的应用程序。目前只有托管C++及其后继者C++/CLI可以做到无缝整合托管和非托管代码,而在托管代码中调用COM的速度又相当慢,所以经常被用于其他语言和非托管代码之间的桥梁。  

  C++/CLI(CLI:Common Language Infrastructure)是一门用来代替C++托管扩展新的语言规范。“C++/CLI”代表托管和本地编程的结合,是静态C++对象模型到CLI的动态组件对象编程模型的捆绑。简而言之就是如何用C++在.NET中编程,而不是C#或Visual Basic。像C#和CLI本身一样,C++/CLI正在ECMA(欧洲计算机制造商协会)主持下进行标准化,以最终符合ISO标准。公共语言运行时 (CLR)是CLI的微软版本,它非常适用于微软的Windows操作系统,相似地,Visual C++2005是C++/CLI的实现。

  在Visual Studio 2010中创建CLR Console Application项目,输入名称CLR_Console,将生成如下文件:

// CLR_Console.cpp : main project file.

#include "stdafx.h"using namespace System;int main(array<System::String ^> ^args)
{Console::WriteLine(L"Hello World");return 0;
}

我们修改源程序为:

// CLR-Console.cpp : main project file.

#include "stdafx.h"using namespace System;int main(array<System::String ^> ^args)
{int fruit=6, packageCount=25, packageWeight=7.5;Console::WriteLine(L"Hello World");Console::WriteLine(L"There are {0} fruit.", fruit); Console::WriteLine(L"There are {1} packages weighting {0:F2} pounds ",packageWeight,packageCount); Console::WriteLine();String ^str = Console::ReadLine();Console::WriteLine("您输入的字符串为:"+str);Console::Read();return 0;
}

程序运行结果如下所示:

学习链接:

NativeC++通过CLI调用C#的Form:http://www.cppblog.com/mzty/archive/2007/12/25/39555.html

转载于:https://www.cnblogs.com/gaohongchen01/p/3969046.html

C++/CLI学习入门相关推荐

  1. C++/CLI学习入门数组

    要学习数组,必须先了解跟踪句柄. 一.跟踪句柄 跟踪句柄类似于本地C++指针,但也有很大区别.跟踪句柄确实存储着某个对象的地址,但当CLR压缩堆过程中改变了该对象的地址,则垃圾回收器自动更新句柄所包含 ...

  2. 【AI参赛经验】深度学习入门指南:从零开始TinyMind汉字书法识别——by:Link

    各位人工智能爱好者,大家好! 由TinyMind发起的#第一届汉字书法识别挑战赛#正在火热进行中,比赛才开始3周,已有数只黑马冲进榜单.目前TOP54全部为90分以上!可谓竞争激烈,高手如林.不是比赛 ...

  3. 深度学习入门,一文讲解神经网络的构成、训练和算法

    小白深度学习入门系列 神经网络的构成.训练和算法 什么是神经网络 人工神经网络(Artificial Neural Network,ANN),简称神经网络(Neural Network,NN),是一种 ...

  4. PyTorch深度学习入门与实战(案例视频精讲)

    作者:孙玉林,余本国 著 出版社:中国水利水电出版社 品牌:智博尚书 出版时间:2020-07-01 PyTorch深度学习入门与实战(案例视频精讲)

  5. PyTorch深度学习入门

    作者:曾芃壹 出版社:人民邮电出版社 品牌:iTuring 出版时间:2019-09-01 PyTorch深度学习入门

  6. 深度学习入门 基于Python的理论与实现

    作者:斋藤康毅 出版社:人民邮电出版社 品牌:iTuring 出版时间:2018-07-01 深度学习入门 基于Python的理论与实现

  7. 干货|《深度学习入门之Pytorch》资料下载

    深度学习如今已经成为了科技领域中炙手可热的技术,而很多机器学习框架也成为了研究者和业界开发者的新宠,从早期的学术框架Caffe.Theano到如今的Pytorch.TensorFlow,但是当时间线来 ...

  8. 福利丨一门面向所有人的人工智能公开课:MIT 6.S191,深度学习入门

    对初学者来说,有没有易于上手,使用流行神经网络框架进行教学的深度学习课程?近日,麻省理工学院(MIT)正式开源了在线介绍性课程「MIT 6.S191:深度学习入门」.该课程包括一系列有关神经网络及其在 ...

  9. 深度学习入门指北——从硬件到软件

    作者:隔壁王大喵 近日,Rachel Thomas在fast.ai上发布了一篇博文<What you need to do deep learning>,他希望通过这篇文章回答一些深度学习 ...

  10. LeCun亲授的深度学习入门课:从飞行器的发明到卷积神经网络

    Root 编译整理 量子位 出品 | 公众号 QbitAI 深度学习和人脑有什么关系?计算机是如何识别各种物体的?我们怎样构建人工大脑? 这是深度学习入门者绕不过的几个问题.很幸运,这里有位大牛很乐意 ...

最新文章

  1. Xamarin.Forms中为WebView指定数据来源Source
  2. 21.正则表达式的基本语法
  3. 怎样在Win7系统建立并开启Wifi热点
  4. 计算机专业好的211大学6,计算机专业好的985大学有哪些?附985211计算机大学名单排名...
  5. jarsigner签名过程
  6. 试用期java_Java 7试用资源
  7. Oracle数据库更新时间的SQL语句
  8. parallelstream启动的线程数_高并发与多线程网络学习笔记(三)线程组和线程池
  9. 项目合作| 视频监控解决隧道洗车线的安全问题
  10. Bootstrap 工具提示插件Tooltip 的选项
  11. Leecode刷题热题HOT100(1)——两数之和
  12. Lync Server 2013视频会议新功能及配置
  13. 找回密码forget_password
  14. 如何彻底杀掉nginx进程
  15. WPF捕获事件即使这个事件被标记为Handled
  16. Android 圆形调色板
  17. matlab怎么做空间计量,六步学会用MATLAB做空间计量回归详细步骤
  18. 访问网络共享找不到网络名的解决方案
  19. Spring Boot—Controller 注解
  20. Python初学者应该选择哪个版本

热门文章

  1. 日常的SQL 语句使用
  2. 信息时代不被淘汰,获取成功需有的十种能力
  3. 谷歌浏览器F12快速定位网页上组件信息
  4. 知乎高赞:当update修改数据与原数据相同时会再次执行吗?
  5. 4种软件架构,看看你属于哪个层次!
  6. 带你深挖Java泛型类型擦除以及类型擦除带来的问题
  7. 亲,你们都在家办公吗?啥感受?hahaha
  8. 程序员如何转型项目经理?
  9. springboot线程池
  10. Linux -- Reactor