图书介绍
精通.NET互操作 P/Invoke、C++ Interop和COM InteropPDF|Epub|txt|kindle电子书版本网盘下载
- 黄际洲,崔晓源编著 著
- 出版社: 北京:人民邮电出版社
- ISBN:9787115204349
- 出版时间:2009
- 标注页数:419页
- 文件大小:134MB
- 文件页数:435页
- 主题词:计算机网络-程序设计
PDF下载
下载说明
精通.NET互操作 P/Invoke、C++ Interop和COM InteropPDF格式电子书版下载
下载的文件为RAR压缩包。需要使用解压软件进行解压得到PDF格式图书。建议使用BT下载工具Free Download Manager进行下载,简称FDM(免费,没有广告,支持多平台)。本站资源全部打包为BT种子。所以需要使用专业的BT下载软件进行下载。如BitComet qBittorrent uTorrent等BT下载工具。迅雷目前由于本站不是热门资源。不推荐使用!后期资源热门了。安装了迅雷也可以迅雷进行下载!
(文件页数 要大于 标注页数,上中下等多册电子书除外)
注意:本站所有压缩包均有解压码: 点击下载压缩包解压工具
图书目录
第一部分 P/Invoke1
第1章 使用C/C++类型的非托管函数1
1.1平台调用简介2
1.2 Hello World!示例程序3
1.3获得要调用的非托管函数声明5
1.4平台调用基础知识8
1.5指定调用约定11
1.6指定入口点13
1.7指定字符集16
1.8处理平台调用中的异常或错误23
1.8.1非托管函数的托管定义导致的异常或错误24
1.8.2非托管函数导致的异常或错误30
1.9释放非托管内存37
1.9.1释放由malloc方法分配的非托管内存38
1.9.2释放由new运算符分配的非托管内存44
1.10动态平台调用47
1.10.1平台调用的原理和过程47
1.10.2通过手动加载非托管DLL实现动态平台调用49
1.10.3利用反射实现动态平台调用51
1.10.4利用GetDelegateForFunctionPointer实现动态平台调用54
1.11提升平台调用性能的技巧57
1.11.1显式地指定要调用的非托管函数的名称57
1.11.2对数据封送处理进行优化60
1.11.3尽量避免字符串编码转换66
第2章 平台调用中的数据封送70
2.1字符串的封送71
2.1.1封送作为参数的字符串72
2.1.2封送作为返回值的字符串80
2.1.3封送BSTR类型的字符串82
2.2封送作为参数的结构体84
2.3封送从函数体内部返回的结构体91
2.3.1封送作为函数返回值返回的结构体92
2.3.2作为函数参数返回结构体96
2.4封送结构体中的字符串98
2.4.1结构体中的字符指针字段98
2.4.2结构体中的字符数组字段102
2.5控制结构体字段的封送行为105
2.6控制结构体的内存布局110
2.6.1定义结构体的部分字段111
2.6.2联合体的封送115
2.7封送嵌套的结构体119
2.7.1指向结构体指针字段的嵌套形式120
2.7.2结构体实例字段的嵌套形式123
2.8封送类125
2.8.1封送引用类型的简单示例126
2.8.2封送blittable引用类型128
2.8.3将引用类型封送为指向指针的指针130
2.9封送数组132
2.9.1封送简单类型数组132
2.9.2封送字符串数组135
2.10实战演练139
2.10.1背景介绍139
2.10.2模块介绍140
2.10.3实现平台调用144
第3章 使用平台调用技术调用Win32 API150
3.1确定要调用的函数151
3.2处理Win32函数返回的错误码156
3.3处理回调函数160
3.4使用Windows定义的常量166
3.5封送Win32数据类型176
3.5.1可直接复制到本机结构中的数据类型176
3.5.2非直接复制到本机结构中的数据类型177
3.6处理句柄179
3.7传递托管对象186
3.8使用P/Invoke调用Win32 API的最佳实践190
3.8.1编码规范190
3.8.2性能192
3.8.3安全性205
3.8.4尽量使用Win32函数对应的.NET托管实现207
第二部分 C++ Interop210
第4章 C++ Interop210
4.1从托管C++代码中调用非托管函数211
4.1.1使用平台调用技术调用非托管函数211
4.1.2使用C++Interop调用非托管函数213
4.2托管代码使用非托管C++类217
4.3在非托管代码中使用托管对象222
4.4混合编译托管和非托管代码228
4.4.1同一项目中的代码混合228
4.4.2同一源文件中的代码混合230
4.5 C++Interop中的封送处理232
4.5.1封送字符串233
4.5.2封送数组236
4.5.3封送结构体237
4.5.4封送回调函数和委托239
4.6 C++Interop的错误处理242
4.6.1通过托管C++封送非托管代码抛出的异常243
4.6.2在编译时检查类型特性249
第三部分 COM Interop251
第5章 在.NET中使用COM组件251
5.1早期绑定COM对象252
5.1.1为COM类型库生成互操作程序集252
5.1.2通过互操作程序集早期绑定COM对象257
5.1.3创建自定义互操作程序集260
5.2后期绑定COM对象262
5.3通过与非托管代码互操作创建COM对象266
5.3.1通过P/Invoke创建COM对象266
5.3.2使用C++Interop包装COM对象269
5.4封送处理272
5.4.1封送常用数据类型272
5.4.2封送VARIANT数据类型277
5.4.3封送数组282
5.4.4封送COM集合286
5.4.5封送自定义数据结构290
5.4.6处理COM事件292
5.5错误处理297
5.5.1映射COM方法返回值HRESULT到托管代码297
5.5.2使用IErrorInfo接口提供扩展的错误信息305
5.6提升性能309
5.6.1细粒度接口和粗粒度接口310
5.6.2优化封送处理性能311
5.6.3避免使用后期绑定311
5.6.4使用ReleaseComObject释放COM对象312
5.6.5避免跨单元调用314
5.7共享互操作程序集317
第6章 在COM中使用.NET程序集319
6.1使用ClassInterface暴露.NET类320
6.1.1使用AutoDual实现早期绑定321
6.1.2使用AutoDispatch实现后期绑定324
6.2使用接口暴露.NET类327
6.3使用属性调整类型库元数据332
6.3.1控制COM标识332
6.3.2控制COM可见性334
6.4封送处理336
6.4.1封送常用数据类型336
6.4.2封送字符串349
6.4.3封送数组355
6.4.4封送自定义数据结构362
6.4.5封送集合367
6.4.6封送VARIANT数据类型372
6.4.7传递可选参数386
6.4.8暴露托管事件392
6.5 .NET异常处理397
6.5.1将异常转化为HRESULT397
6.5.2提供表示成功的HRESULT返回值401
6.6为COM Interop准备程序集403
附录A 光盘内容介绍407
A.1源代码和可执行程序407
A.2工具软件407
A.3资源409
附录B 有关互操作技术的互联网资源411
B.1 Interop411
B.2 P/Invoke411
B.3 C++ Interop412
B.4 COM Interop413
B.5封送处理413
附录C 本书所用术语表415