精通.NET互操作PInvoke,C++Interop和COM Interop(奋斗的小鸟)_PDF 电子书
来源:互联网 发布:print2flash php 编辑:程序博客网 时间:2024/05/20 18:50
下载地址:http://pan.baidu.com/share/link?shareid=2696879342&uk=721744522
QQ:2864670220
内容简介
《精通.NET互操作P/Invoke,C++Interop和COM Interop》介绍Windows平台上的托管代码与非托管代码之间进行互操作的各种技术,包括由.NET提供的各种互操作方法、属性以及各种工具的用法及其工作原理。《精通.NET互操作P/Invoke,C++Interop和COM Interop》包括3部分,平台调用——主要用于解决在托管代码中调用非托管程序设计语言编写的flat API(如Win32 API、C/C++风格的API等)的问题;C++ Interop——技术专门用于解决托管代码与C++编写的非托管代码之间的互操作问题;COM Interop——介绍了使用COM Interop解决在托管代码中调用COM组件,以及在COM中调用托管类型的问题。《精通.NET互操作P/Invoke,C++Interop和COM Interop》适合所有在开发过程中需要涉及到托管代码与非托管代码进行交互操作的.NET开发人员阅读使用。不论是开始学习.NET编程的开发人员,还是刚刚接触互操作的资深.NET开发人员,都能从《精通.NET互操作P/Invoke,C++Interop和COM Interop》中获益。
作者简介
黄际洲,2004-2007年连续四年微软最有价值专家(MVP)。感兴趣的研究方向主要包括自然语占处理、信息检索、聊天机器人等。他曾翻译了三本游戏编程方面的书籍:《Direct 3D中的2D编程》、(游戏编程All in One》及《DirectX角色扮演游戏编程》。
崔晓源,就任于微软亚洲研究院创新工程组,负责前沿研究成果的转化和新产品孵化。曾参与过Live Search拼写检查模块的研发工作。他最喜欢的项目是在线“电脑对联”第二版。目前他正致力于下一代企业搜索技术和社会网络计算相关的研发工作。
崔晓源,就任于微软亚洲研究院创新工程组,负责前沿研究成果的转化和新产品孵化。曾参与过Live Search拼写检查模块的研发工作。他最喜欢的项目是在线“电脑对联”第二版。目前他正致力于下一代企业搜索技术和社会网络计算相关的研发工作。
目录
前言
精彩书摘
本节主要讲述了3种优化平台调用性能的方法。
(1)将。Dlllmport属性的ExactSpelling字段设置为true,显式地指定要调用的非托管函数的名称,以优化平台调用在非托管DLL中搜索函数的方式。
(2)尽可能地使用blittable类型。由于采用blittable类型能够减少平台调用过程中耗费在数据封送处理上的时间,从而能极大地提升平台调用的性能。
(3)尽可能避免从Unicode到ANSI的转换。由于.NET采用的是unicode编码,如果要调用的非托管函数接收的是ANSI字符(串),那么封送拆收器必须先将字符(串)从Unicode转换为ANSI,再从托管内存中将字符(串)复制到非托管内存中。这样不仅编码转换会牺牲性能,而且复制操作也会耗费时间。
除了上面介绍的这3种经过对比测试一一验证了的、优化平台调用性能的方法外,还有其他一些可以优化平台调用性能的方法。比如采用IntPtr作为复杂类型的封送数据类型,或尽可能减少平台调用次数,在非托管代码中尽可能多地完成操作,而只进行获取最终计算结果的平台调用等,这些方法都能够提升平台调用的性能。在实际进行平台调用时,需要对造成性能损耗的原因进行深入分析,只有弄清了造成损耗的原因,才能更有针对性地进行性能优化。
(1)将。Dlllmport属性的ExactSpelling字段设置为true,显式地指定要调用的非托管函数的名称,以优化平台调用在非托管DLL中搜索函数的方式。
(2)尽可能地使用blittable类型。由于采用blittable类型能够减少平台调用过程中耗费在数据封送处理上的时间,从而能极大地提升平台调用的性能。
(3)尽可能避免从Unicode到ANSI的转换。由于.NET采用的是unicode编码,如果要调用的非托管函数接收的是ANSI字符(串),那么封送拆收器必须先将字符(串)从Unicode转换为ANSI,再从托管内存中将字符(串)复制到非托管内存中。这样不仅编码转换会牺牲性能,而且复制操作也会耗费时间。
除了上面介绍的这3种经过对比测试一一验证了的、优化平台调用性能的方法外,还有其他一些可以优化平台调用性能的方法。比如采用IntPtr作为复杂类型的封送数据类型,或尽可能减少平台调用次数,在非托管代码中尽可能多地完成操作,而只进行获取最终计算结果的平台调用等,这些方法都能够提升平台调用的性能。在实际进行平台调用时,需要对造成性能损耗的原因进行深入分析,只有弄清了造成损耗的原因,才能更有针对性地进行性能优化。
内页插图
编辑推荐
使用P/Invoke调用C库函数及Windows API,使用C++Interop与C++类库及核心算法库进行交互,使用COM Interop实现托管代码与COM之间的交互。
本书旨在介绍Windows平台上托管代码与非托管代码之间进行互操作的三种主要技术及其工作原理。在内容的设计上着眼于程序员在开发过程中可能会遇到的各种问题,并以实际问题为背景将各种技术细节的介绍融汇于最佳实践之中。不论是开始学习.NET编程的开发人员,还是刚刚接触互操作的资深NET开发人员都能从本书中获益。
本书旨在介绍Windows平台上托管代码与非托管代码之间进行互操作的三种主要技术及其工作原理。在内容的设计上着眼于程序员在开发过程中可能会遇到的各种问题,并以实际问题为背景将各种技术细节的介绍融汇于最佳实践之中。不论是开始学习.NET编程的开发人员,还是刚刚接触互操作的资深NET开发人员都能从本书中获益。
媒体评论
托管代码与非托管代码之间的交互是许多程序员在.NET开发平台上不得不面对的任务。《精通.NET互操作:P/Invoke,C++Interop和COM Interop》这本书深入而透彻地解析了.NET支持的三种与原生代码互操作的技术,作者以自己的经验讲述了原生代码与托管代码之间互操作所涉及到的编程要点,以及背后的一些实现原理。书中提供的实例有助于程序员快速领会并掌握.NET与原生代码互操作技术的用法。我建议在.NFT平台上工作的程序员读一读这本书。
——潘爱民,著名技术作家,著有《COM原理与应用》等多部畅销书,并翻译了多部经典名作
——潘爱民,著名技术作家,著有《COM原理与应用》等多部畅销书,并翻译了多部经典名作
- 精通.NET互操作PInvoke,C++Interop和COM Interop(奋斗的小鸟)_PDF 电子书
- 精通.NET核心技术原理与构架(奋斗的小鸟)_PDF 电子书
- 精通.NET核心技术高级特性(奋斗的小鸟)_PDF 电子书
- 《精通.NET互操作:P/Invoke、C++ Interop和COM Interop》
- ADO.NET本质论(奋斗的小鸟)_PDF 电子书
- ADO.net高级编程(奋斗的小鸟)_PDF 电子书
- ADO.net技术内幕(奋斗的小鸟)_PDF 电子书
- ADO.NET实用指南(奋斗的小鸟)_PDF 电子书
- .NET高级调试(奋斗的小鸟)_PDF 电子书
- .NET单元测试艺术(奋斗的小鸟)_PDF 电子书
- .NET安全揭秘(奋斗的小鸟)_PDF 电子书
- VB.NET 技术内幕(奋斗的小鸟)_PDF 电子书
- 关于PInvoke 和COM Interop
- C#从入门到精通(第2版).王小科(奋斗的小鸟)_PDF 电子书
- 中文编程·从入门到精通(奋斗的小鸟)_PDF 电子书
- ADO.NET4从入门到精通/微软技术丛书(奋斗的小鸟)_PDF 电子书
- Visual C#2008从入门到精通(奋斗的小鸟)_PDF 电子书
- Visual Basic 2005从入门到精通(奋斗的小鸟)_PDF 电子书
- VMware ESX常用命令 和 IP 地址修改
- Cubist Artwork poj 3802
- 怎样用C语言编写病毒
- aix中 pax 备份与恢复
- 获取十六进制数
- 精通.NET互操作PInvoke,C++Interop和COM Interop(奋斗的小鸟)_PDF 电子书
- 网络直播电视之M3U8解析篇(上)
- C++成长历程 之 指针应用
- 管理员应该如何加固Web服务器
- 二分图
- 2012.12.21围观搜索引擎首页,非常给力!
- 人生应该如何学习?
- STL 整理(map、set、vector、list、stack、queue、deque、priority_queue)
- 在实战中成长Windows Forms开发之路(奋斗的小鸟)_PDF 电子书