第十章 CString, et al.

图标

 

第十章  WTL 辅助类 CString, et al.

 

在 ATL COM AppWizard 中有一个选项是 “Support MFC.” 因为 ATL 支持基本的窗口和对话框, 这些在大多数 COM servers 中都是需要的. 然而为何每个人都需要选择这个选项呢? 只有一个原因: CString. 许多依赖于 CString 的开发者都会不惜花费在项目中引入 MFC 的代价来获得 CString. 然而在 WTL 中他们没必要这么做. ATL 小组把 MFC 的 CString 引入到了 ATL 中, 并和其它一些工具类一起在 atlmisc.h 中定义. 并且把兼容性放在了第一位来考虑, 下面对 MFC 和 WTL 中的 CString 的不同实现做个对比:

  • WTL 的 CString 是写时拷贝, 就像 MFC 的一样.
  • 许多 WTL 方法都有接受 CString 参数的版本, 与 MFC 一样.
  • WTL 的 CString 具有 MFC 版本 CString 的所有方法, 除了少数的重载方法和 CollateNocase 之外.
  • WTL 的 TrimRight 和 TrimLeft 方法仅仅剔除掉空格字符, 而 MFC 版本的则剔除所有指定的字符或字符集.
  • WTL 的 Find 方法在字符串中从左往右搜寻制定字符. 而 MFC 提供了两个版本的 Find 方法, 一个与 WTL 版本的相同. 另一个则允许传递一个从 0 开始的索引来指定字符在字符串中的位置.
  • 不幸的是, 两个版本的 CString 实现都使用了 CRT, 这使得在很少支持 CRT 的 ATL COM servers 中使用 CString 时会有问题.
  • 对于 AllocBuffer 和 AllocBeforeWrite 方法, WTL 版本返回值为 BOOL 型而 MFC 版本则为 void 类型.
  • WTL 版本的 Format 方法不支持浮点数类型, 而 MFC 的支持. 

除了 CString 之外, WTL 提供了与 MFC 比较类似的一些封装类, 包括 CRect, CSize, CPoint, CFileFind(封装了  WIN32_FIND_DATA 结构), 以及  CWaitCursor. 在 WTL 中明显没有的但又是最常用的就是没有对 CURRENCY 和 DATE 的封装类. 而 MFC 的  COleCurrency 和 COleDateTime/COleDateTimeSpan 则对此有很好的支持. 你可以从以下站点下载实现了相关功能的类 http://www.sellsbrothers.com/tools

 

(译者注: 关于 WTL::CString 的相关解释请参阅 WTL::CString

 

WTL’s support for DDX

To be continued...  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值