今日是:
  小新技术网 -=> 程序开发 -=> C/C++区 -=> 正文

C++/CLI思辨录之传递托管堆地址

作者:[本站整理] 来源:[本站] 浏览:[] 评论:[]  【字体:
  新的C++特点平衡了把托管堆的地址传递到非托管代码的能力。早期我们遇到的最大问题是,在托管堆中的对象的位置是非静态的。垃圾收集器以变化的时间间隔移动对象。现在新的pin_ptr(别针型指针)的引入禁止垃圾收集器改变在堆上的对象的地址。

  下面代码展示了别针型指针的应用。

#pragma unmanaged
//本机函数,以整型指针作参数,执行计算
void calc(int* val)
{
 //执行计算操作
}
#pragma managed
//托管函数调用本机calc函数
int managedfunc()
{
 int i=gcnew int(10);
 //把i的地址设置为别针型,以阻止对i的移动
 pin_ptr<int> ppi=&i;
 int* np=ppi;
 calc(np);//用别针型int的地址调用本机函数
 //把别针型指针的值置为nullptr,脱离了gc的限制
 ppi=nullptr;
 //完成剩下的工作
 return i;
}

  基于轮廓的优化(Profile Guided Optimization)

  在新版本的托管C++中有一项新增功能称为基于轮廓的优化。这一新的编译特点能够实现在编译时刻把探针注入到代码中。最后的exe文件与一个数据库一起打包发送,由该库记录下注入代码中的探针监测到的结果数据。当用户运行该程序时,这些探针记录下应用程序的使用。当你下一次再编译时,编译器作出智能性决策,如根据探针的记录作为相应的动作。这一特性带来了真实世界的优化。

  为什么没有为使用托管类型而定义头文件?

  在传统的C++中,一个头文件一般包含对象的接口,或者类与函数的声明,等等。这允许在多个翻译单元上实现某种类型的一致性声明。对于一个用托管代码编写的且其被编译成MSIL的对象,需要在配件集中包含描述对象的元数据。因而,托管C++编译器不是通过头文件,而是通过使用配件集元数据来实现接口的读取。这就是为什么你不必因使用托管类型而包含头文件。事实上,你可以通过使用#using指令来让编译器从配件集中读取元数据。
下一篇:用VC++实现http代理
上一篇:C++箴言:资源管理类的拷贝行为
IP查询、IP签名
打印 】【 收藏 】【 评论 】【 推荐
相关文章 栏目推荐文章 栏目热门文章
 推荐文章 C# 3.0语言详解之基本的语言增强 .. 
 推荐文章 C++程序设计最佳实践 
 推荐文章 C语言嵌入式系统编程之屏幕操作 
 推荐文章 QQ用户小心!C语言实现QQ密码大盗.. 
 推荐文章 C语言初学者入门讲座 第一讲 慨述.. 
 推荐文章 用C++实现简单的文件I/O操作 
 推荐文章 C++的iostream标准库介绍以及对左.. 
 推荐文章 用C++访问SQL Server 2000 
 普通文章 伪随机数生成及在VC++中的实现 
 推荐文章 TurboC程序设计初步  
 推荐文章 QQ用户小心!C语言实现QQ密码大盗.. 
 普通文章 C语言程序设计基础之联合 
 普通文章 学C++不得不看的一篇文章 
 推荐文章 强大的语言——C入门  
 推荐文章 C# 3.0语言详解之基本的语言增强 .. 
 推荐文章 用C++实现简单的文件I/O操作 
最新文章 最新推荐文章 热门文章
 普通文章 简历封面 
 普通文章 简历封皮(二) 
 推荐文章 用好Windows共享 确保安全 
 推荐文章 多点出发:消除局域网遗留共享痕迹.. 
 普通文章 只需三步!闪盘立刻变成启动盘 
 普通文章 战无不胜 一目了然看穿局域网 
 普通文章 Win 2000/XP在局域网内批量升级 
 普通文章 黑客经常更改的系统配置文件及注册.. 
 推荐文章 用好Windows共享 确保安全 
 推荐文章 多点出发:消除局域网遗留共享痕迹.. 
 推荐文章 Ghost二十个鲜为人知的实用参数 
 推荐文章 ASP.NET程序中常用的三十三种代码.. 
 推荐文章 黑客利用Ms05002溢出找“肉鸡” 
 推荐文章 C# 3.0语言详解之基本的语言增强 .. 
 推荐文章 Ghost所有运行错误代码完全大揭秘.. 
 推荐文章 利用Java Swing 实现游戏开发 
 推荐文章 秘籍:QQ头像任意换 
 普通文章 提升QQ等级 QQ挂机升级外挂  
 普通文章 QQ100个经典个性签名!可爱经典贴图.. 
 推荐文章 BIOS设置图解教程(多图) 
 普通文章 惊现腾讯QQ刷等级漏洞 
 普通文章 求职简历封皮  
 普通文章 突破在线观看电影 
 普通文章 GIF动画图片制作教程 
点击查看更多评论
笔名:
评论:
[评论将在5分钟内被审核,请耐心等待]
【注】 发表评论必需遵守以下条例:
  • 尊重网上道德,遵守中华人民共和国的各项有关法律法规
  • 承担一切因您的行为而直接或间接导致的民事或刑事法律责任
  • 本站管理人员有权保留或删除其管辖留言中的任意内容
  • 本站有权在网站内转载或引用您的评论
  • 参与本评论即表明您已经阅读并接受上述条款
  • 本站大部分为网络转载,如有版权问题,请通知我们,我们立即更正!

设置首页 - 版权声明 - 广告服务 - 关于我们 - 联系我们 - 友情连接
Copyright ©2003-2005 xker.com All rights reserved. 网站合作、广告联系QQ:12231446
小新技术网  冀ICP备05002857号