ATL与WTL中CString的使用, 利用ATLCString获得窗口的文字.

本文介绍了在ATL与WTL中使用CString时遇到的转换错误问题,特别是从"WTL::CString"到"ATL::CSimpleString &"的转换错误。建议使用ATL中的CString类,因为WTL的文档不足。通过在包含WTL头文件前定义 `_WTL_NO_CSTRING` 和 `_WTL_NO_WTYPES`,可以避免此类问题。并提供了一个获取控件文字的代码示例。

http://hi.baidu.com/icexile/blog/item/2c698efdfd653a1009244dd8.html

WTL提供的CString类在ATL中也提供了相同的类后变得有点鸡肋,并且使用WTL::CString类后,经常会出现标题所示的编译错误(不能从“WTL::CString”转换为“ATL::CSimpleString &”的问题)。

实际上ATL不仅在<atlstr.h>中提供了CString类,还在<atltypes.h>中提供了CPoint、CSize和CRect类,因此,WTL中提供的同名类变得可有可无。我认为还是用ATL中的类会好一些,毕竟WTL没有文档嘛。

因此,应该在工程头文件中包含任何WTL头文件前定义以下两行:

// 一定要注意下面的顺序

#define _WTL_NO_CSTRING
#define _WTL_NO_WTYPES

典型的声明顺序应该这样:

#include <atlbase.h>
#include <

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值