当前位置:首页 > 工业技术
Effective COM中文版
Effective COM中文版

Effective COM中文版PDF电子书下载

工业技术

  • 电子书积分:9 积分如何计算积分?
  • 作 者:(美)Don Box等著;余蒲澜译
  • 出 版 社:北京:中国电力出版社
  • 出版年份:2003
  • ISBN:7508308476
  • 页数:192 页
图书介绍:本书由著名的COM大师Don Box及其合作者一起编写,是Addison Wesley出版社名声显赫的由Scott Meyer开创的“Effective系列”图书中的重要一员。他们对COM的背景和技术内核有着极为深刻的理解。有关COM的基础教程,一般来说,只是单纯地介绍一些基本的理论和技巧,而本书面向的则是高层次的COM开发人员。作者从不同角度引导我们解决COM开发中最常见的一些高深疑难问题,而这些问题的解决,对应用程序的正常运行起着至关重要的作用。为了让我们可以更加高效地运用COM,本书还提供了具体的指导原则和详尽准确的示例程序。尤为可贵的是,作者把自己在COM领域中多年的研究成果无私地奉献给了读者。本书的结构安排合理。它按不同主题逐步深入地探讨了在COM开发中可能遇到的高级问题。全书涉及了C++到COM的转换接口、安全、单元、实现以及事务等多方面的具体内容。针对每一方面,本书都提供了一些详尽实用的指导原则。它不但考虑了C++的开发人员,而且也兼顾了其他语言的开发人员。相信各层次开发人员在阅读本书之后,在COM的开发方面都会受益匪浅。
《Effective COM中文版》目录
标签:中文版

第1章 从C++转变到COM 1

实践1 在定义类之前定义接口(用IDL实现) 1

实践2 设计时牢记分布式的概念 8

实践3 对象不应该有自己的用户界面 15

实践4 当心COM单实例 16

实践5 不要允许C++的异常跨越方法边界 20

第2章 接口 27

实践6 接口是语法和松散的语义,二者都是不可变的 27

实践7 避免E_NOTIMPL 31

实践8 要类型化的数据,不要模糊的数据 32

实践9 避免连接点 37

实践10 不要为单个对象的同一接口提供多个实现 40

实践11 无类型语言失去了COM的优点 44

实践12 双接口是很苛刻的,不要强求人们去实现它 49

实践13 选择合适的数组类型(不要使用开放的和可变的数组) 51

实践14 避免将IUnknown作为一个静态类型化的对象引用(使用iid_is)传递 55

实践15 避免包含指针的[in,out]参数 58

实践16 注意循环引用(以及它们可能造成的问题) 61

实践17 避免使用wire_marshal,transmit_as,call_us以及cpp_quote 65

第3章 实现 69

实践18 防御性编码 69

实践19 总是初始化[out]参数 73

实践20 不要使用还没有被AddRef的接口指针 77

实践21 在桥接COM类型系统和C++类型系统时使用static_cast 83

实践22 智能指针带来的复杂性至少和它们消除的复杂性一样多 86

实践23 不要手工优化引用计数 91

实践24 使用延迟求值实现枚举器 93

实践25 适当地使用flyweight 96

实践26 避免跨单元边界使用tearoff 98

实践27 要特别地小心使用BSTR 100

实践28 COM聚合和包容只是一种身份诡计,而不是代码重用 102

第4章 单元 107

实践29 不要跨单元边界访问原始接口指针 107

实践30 当在MTA线程之间传递接口指针时,使用AddRef 110

实践31 用户界面线程和对象必须在单线程单元(STA)中运行 112

实践32 避免从进程内服务器创建线程 114

实践33 小心FTM 116

实践34 当心MTA中的物理锁 121

实践35 STA可能也需要锁 125

实践36 避免扩展进程内对象上的现存列集 129

实践37 当你提前退出时,请使用CoDisconnectObject来通知存根 131

第5章 安全 133

实践38 CoInitializeSecurity是你的朋友,要学习它、爱它、调用它 133

实践39 避免以激活者方式激活 139

实践40 避免伪装 143

实践41 使用细粒度验证 146

实践42 使用细粒度访问控制 151

第6章 事务 157

实践43 使事务尽可能短 157

实践44 当分发自己的对象的指针时总是使用SafeRef 158

实践45 不要跨活动边界共享对象引用 161

实践46 小心从事务层次的中间公开对象引用 163

实践47 小心隐式地提交事务 166

实践48 在适当的时候使用非事务对象 166

实践49 把重要的初始化移到IObjectControl∷Activate 168

实践50 不要依赖JIT激活和ASAP停用来实现可伸缩性 169

结束语 171

关于作者 173

索引 175

相关图书
作者其它书籍
返回顶部