什么是C++/CLI?什么是非托管代码?
目录
(相关资料图)
什么是c++/cli?
什么是托管代码?什么是非托管代码?
托管代码
非托管代码
两者区别
c++/cli有什么用?
什么是c++/cli?
C++/CLI(CLI: Common Language Infrastructure)在计算机语言中是一门由微软设计,用来代替C++托管扩展(Managed C++,下文使用MC++指代)的语言。这门语言在兼容原有的C++标准的同时,重新简化了托管代码扩展的语法,提供了更好的代码可读性。
C++/CLI是一门独立的语言(比如新的关键字),而不是像C++托管扩展一样是C++的超集。(C++托管扩展有一些不标准的关键字如__gc和__value)。所以,C++/CLI对于这些语法有较大的改变,尤其是去除了一些意义不明确的关键字,增加了一些对.NET的特性的语言级别的支持。
什么是托管代码?什么是非托管代码?
托管代码
托管代码是一microsoft的中间语言,他主要的作用是在.NET FRAMEWORK的CLR执行代码前去编译源代码,也就是说托管代码充当着翻译的作用,源代码在运行时分为两个阶段: 1.源代码编译为托管代码,(所以源代码可以有很多种,如VB,C#,J#) 2.托管代码编译为microsoft的平台专用语言。
编译器把代码编译成中间语言(IL),而不是能直接在你的电脑上运行的机器码。中间语言被封装在一个叫程序集(assembly)的文件中,程序集中包含了描述你所创建的类,方法和属性(例如安全需求)的所有元数据。你可以拷贝这个程序集到另一台服务器上部署它。
托管代码在公共语言运行库(CLR)中运行。这个运行库给你的运行代码提供各种各样的服务,通常来说,他会加载和验证程序集,以此来保证中间语言的正确性。当某些方法被调用的时候,运行库把具体的方法编译成适合本地计算机运行的机械码,然后会把编译好的机械码缓存起来,以备下次调用。(这就是即时编译)随着程序集的运行,运行库会持续地提供各种服务,例如自动垃圾回收、运行库类型检查和安全支持等。这些服务帮助提供独立于平台和语言的、统一的托管代码应用程序行为。
Visual Basic .NET和C#只能产生托管代码。如果你用这类语言写程序,那么所产生的代码就是托管代码。如果你愿意,Visual C++ .NET可以生成托管代码。当你创建一个项目的时候,选择名字是以.Managed开头的项目类型。例如.Managed C++ application。
非托管代码
非托管代码就是在Visual Studio .NET 2002发布之前所创建的代码。例如Visual Basic 6, Visual C++ 6, 最糟糕的是,连那些依然残存在你的硬盘中、拥有超过15年历史的陈旧C编译器所产生的代码都是非托管代码。托管代码直接编译成目标计算机的机械码,这些代码只能运行在编译出它们的计算机上,或者是其它相同处理器或者几乎一样处理器的计算机上。非托管代码不能享受一些运行库所提供的服务,例如安全和内存管理等。如果非托管代码需要进行内存管理等服务,就必须显式地调用操作系统的接口,通常来说,它们会调用Windows SDK所提供的API来实现。就最近的情况来看,非托管程序会通过COM接口来获取操作系统服务。
跟Visual Studio平台的其他编程语言不一样,Visual C++可以创建非托管程序。当你创建一个项目,并且选择名字以M FC,ATL或者Win32开头的项目类型,那么这个项目所产生的就是非托管程序。
两者区别
1、托管代码是一种中间语言,运行在CLR上;
非托管代码被编译为机器码,运行在机器上。
2、托管代码独立于平台和语言,能更好的实现不同语言平台之间的兼容;
非托管代码依赖于平台和语言。
3、托管代码可享受CLR提供的服务(如安全检测、垃圾回收等),不需要自己完成这些操作;
非托管代码需要自己提供安全检测、垃圾回收等操作。
托管代码就意味着托管数据?答案是否定的。
对于Visual Basic和C#来说,生活是简单的,因为你没有其它选择。当你在那些语言里面声明一个类,那么这个类的实例会在托管堆中被创建,垃圾收集器(GC)会帮我们管理这些对象的回收。但是在Visual C++中,你有另一个选择。即使你正创建一个托管程序,你可以决定哪些类是托管类型,哪些类是非托管类型的。
c++/cli有什么用?
总之就一句话:使托管代码调用非托管代码(c#调用c++的dll)。
标签:
相关推荐:
最新新闻:
- 好电影有哪些推荐?《追风筝的人》(The Kite Runner)
- 前端ol是啥意思是什么?前端开发基础入门--HTML
- 松下官宣:停止生产蓝光刻录碟 此前已生产3.3亿片!:世界热门
- 【案例分享】降维案例探究
- word07目录如何生成?word07目录右侧页码怎样对齐?
- 开机要按f1怎么解决?开机启动项怎么设置?
- 什么是数据库系统?数据库系统有什么特点?
- 诊断卡代码是什么意思?电脑主板故障诊断卡代码大全
- 石油是什么?油气地质储量及其分级:实时焦点
- 搜狐视频怎么看不了?如何下载搜狐网站里的视频?
- 全球热讯:【软件设计】XX模块详细设计说明书
- skype无法登录怎么解决?skype无法登录的操作方法
- Request、Form、Query、params的使用方法
- dnf怎么上不去了是什么原因?电脑登不上dnf的解决方法
- 怎么把内存分给显卡?怎么看电脑内存显卡?
- 一般试卷的纸张大小是多少?试卷标准字体大小是多少?|每日播报
- wupdmgr.exe文件是什么?wupdmgr.exe文件信息介绍
- 电话在线怎么激活win8.1?电话激活win8.1的具体方法
- 郑码输入法:170个组字能力强的形码输入方法_视讯
- 电脑任务栏没有声音图标是怎么回事?电脑任务栏没有声音图标解决方法
- DX11安装路径是什么?DX11安装路径位置
- 如何安装12306根证书?安装12306根证书的操作教程
- 手机如何进行彩信设置?已中国移动为例详解设置方法
- 局域网对战平台 linux,在Linux下可用Wine安装和运行完美对战平台、金山游侠2002体验版...
- 诺顿磁盘医生是什么软件?诺顿磁盘医生使用方法介绍
- xp桌面美化怎么操作?电脑桌面美化软件哪个好用?
- 天天快消息!数位板用什么软件好?ps和CorelPainter的使用方法
- 微信夜间模式是什么意思?手机如何切换夜间模式?
- win10第三方软件模糊是什么原因?win10第三方软件模糊解决方法
- 如何关闭445端口的网络访问权限?两种详细关闭445端口的方法
- 登录百度云提示错误1550010是什么情况?百度云提示错误解决方法
- 苹果App Store打不开怎么办?苹果App Store打不开解决方案
- 西电随机实验二——模拟调制VSB信号的产生及分析-全球播资讯
- 什么是C++/CLI?什么是非托管代码?
- 《怪奇物语》第五季5月开拍!预计2024年播出 -环球消息
- FPS《量子误差》发布新预告 游戏几乎接近完成_当前快讯
- 不是云南也不是海南 四川春节接待游客人数全国第一
- 环球快消息!饭制《艾尔登法环》DLC预告片:PPT播片有内味儿了!
- 《假面骑士Outsiders》ep.2新预告 4月上线发布
- 手绘风游戏《赎罪:世界树之心》 现已在Steam发售
- 机械硬盘永不为奴!希捷24TB和22 TB硬盘上半年推出,30TB和50TB硬盘Q3推出
- 米斯拉?小米新能源汽车设计效果图曝光
- 2TB约2600元!首款消费级PCIe 5 NVMe SSD在日本上市销售 最高可达10 GB/s
- RTX 4060、RTX 4050大曝光:终于来到2000元档
- 1299 元,森海塞尔新 IE200 耳机上架:配备 7mm 超宽频换能器:世界观热点
- 4位大V回应被《满江红》片方起诉:法院见!|实时焦点
- 第一人称建造掠夺 《Meet Your Maker》2月6日进行开放Beta测试
- 世界滚动:Xbox老大承认2022年Xbox表现不佳:都是我的错
- 环球热门:影院回应暂停电影让观众上厕所:特殊原因 只此一场
- 手握新能源、智能化双重优势,长城汽车车市技术大牛地位稳了!
- 特朗普称可在24小时内解决俄乌冲突是什么情况:环球今亮点
- 手握新能源、智能化双重优势,长城汽车车市技术大牛地位稳了!
- 40系甜品卡将至!中国显卡制造商向EEC提交RTX 4060/4050显卡
- 世界视点!电竞娱乐消费成春节热门 京东高端游戏笔记本成交额同比增长50%
- 四插槽、800W TDP!英伟达RTX 4090Ti/TITAN显卡曝光
- 国外网友三星990 PRO旗舰SSD仅写入2TB寿命就跌到了95%:申请质保惨遭拒绝
- 《飞越13号房》“反击篇”Steam页面上线 2月2日发售:当前视点
- 《怪奇物语》第五季将于今年5月开拍
- 《死亡空间:重制版》和《木卫四协议》玩法对比
- 春节楼市 | 2023年春节成交同比降14%,个别三四线“返乡置业”露端倪-新消息
- 4.3万亿基金投资出现重大转向,这两个板块卷土重来!_全球播资讯
- SBSettings怎么用?详解iOS系统增强工具SBSettings使用设置教程
- 惠普打印机有哪些型号?惠普打印机型号介绍
- stormmedia可以删除吗?stormmedia文件会自动清空?
- mcafee杀毒软件如何激活?mcafee激活码分享
- 如何刻盘光盘?笔记本电脑刻录光盘步骤
- 如何将U盘内存卡进行低级格式化?内存卡低格工具使用说明
- 怎么解决iexplore.exe应用程序错误?iexplore.exe应用程序错误解决办法
- win7系统中斜箭头符号怎么打?分享斜箭头符号的输出方法
- 系统垃圾怎样清除?系统垃圾可以删除吗?
- streambox ripper是什么?streambox ripper使用方法
- 打开淘宝提示安全证书过期了是怎么回事?对应的解决方案
- 无线网卡不能被电脑识别?宏基4741g网卡驱动安装及网卡介绍
- 如何一键ghost8.3硬盘版备份硬盘?一键ghost8.3硬盘版备份方法
- 虚拟内存最小值太低怎样解决?虚拟内存最大最小值应该怎样设置?
- CAXA电子图板2007怎么激活?破解版安装使用教程
- zinemaker有什么用?zinemaker使用教程
- 弹出U盘提示现在无法停止通用卷怎么解决?弹出U盘提示现在无法停止通用卷解决步骤
- 魔兽显血改键工具怎么用?魔兽显血改键工具使用方法及注意事项
- 德玛西亚符文怎么配?德玛西亚符文天赋及出装?
- iphone怎么设置来电显示?iphone怎么截长图?
- 2022年度百大球星梅西76%得票率夺魁!姆巴佩本泽马分获二三
- 美女主播-53℃玩电脑:13900K、RTX4090成功启动
- 今热点:《消极氛围:急诊室》steam抢测开启 恐怖医疗模拟
- 每日快报!科技圈唯一没有大规模裁员的巨头——苹果还能扛多久?