| ISBN | 出版时间 | 包装 | 开本 | 页数 | 字数 |
|---|---|---|---|---|---|
| 未知 | 暂无 | 暂无 | 未知 | 0 | 暂无 |
第一部分 P/Invoke
第1章 使用C/C++类型的非托管函数
1.1 平台调用简介
1.2 Hello World!示例程序
1.3 获得要调用的非托管函数声明
1.4 平台调用基础知识
1.5 指定调用约定
1.6 指定入口点
1.7 指定字符集
1.8 处理平台调用中的异常或错误
1.8.1 非托管函数的托管定义导致的异常或错误
1.8.2 非托管函数导致的异常或错误
1.9 释放非托管内存
1.9.1 释放由malloc方法分配的非托管内存
1.9.2 释放由new运算符分配的非托管内存
1.10 动态平台调用
1.10.1 平台调用的原理和过程
1.10.2 通过手动加载非托管DLL实现动态平台调用
1.10.3 利用反射实现动态平台调用
1.10.4 利用GetDelegateForFunctionPointer实现动态平台调用
1.11 提升平台调用性能的技巧
1.11.1 显式地指定要调用的非托管函数的名称
1.11.2 对数据封送处理进行优化
1.11.3 尽量避免字符串编码转换
第2章 平台调用中的数据封送
2.1 字符串的封送
2.1.1 封送作为参数的字符串
2.1.2 封送作为返回值的字符串
2.1.3 封送BSTR类型的字符串
2.2 封送作为参数的结构体
2.3 封送从函数体内部返回的结构体
2.3.1 封送作为函数返回值返回的结构体
2.3.2 作为函数参数返回结构体
2.4 封送结构体中的字符串
2.4.1 结构体中的字符指针字段
2.4.2 结构体中的字符数组字段
2.5 控制结构体字段的封送行为
2.6 控制结构体的内存布局
2.6.1 定义结构体的部分字段
2.6.2 联合体的封送
2.7 封送嵌套的结构体
2.7.1 指向结构体指针字段的嵌套形式
2.7.2 结构体实例字段的嵌套形式
2.8 封送类
2.8.1 封送引用类型的简单示例
2.8.2 封送blittable引用类型
2.8.3 将引用类型封送为指向指针的指针
2.9 封送数组
2.9.1 封送简单类型数组
2.9.2 封送字符串数组
2.10 实战演练
2.10.1 背景介绍
2.10.2 模块介绍
2.10.3 实现平台调用
第3章 使用平台调用技术调用Win32 API
3.1 确定要调用的函数
3.2 处理Win32函数返回的错误码
3.3 处理回调函数
3.4 使用Windows定义的常量
3.5 封送Win32数据类型
3.5.1 可直接复制到本机结构中的数据类型
3.5.2 非直接复制到本机结构中的数据类型
3.6 处理句柄
3.7 传递托管对象
3.8 使用P/Invoke调用Win32 API的最佳实践
3.8.1 编码规范
3.8.2 性能
3.8.3 安全性
3.8.4 尽量使用Win32函数对应的.NET托管实现
第二部分 C++ Interop
第4章 C++ Interop
第三部分 COM Interop
第5章 在.NET中使用COM组件
第6章 在COM中使用.NET程序集
附录A 光盘内容介绍
附录B 有关互操作技术的互联网资源
附录C 本书所用术语表