读书人

慎用ATL:CString慎用全局变量不然

发布时间: 2012-02-04 15:43:08 作者: rapoo

慎用ATL::CString,慎用全局变量,不然都不知道怎么死的
最近开发Windows Xp智能卡登录Gina,编译环境VS2008,碰到很奇怪的问题。。。
为了处理字符串方便使用的ATL::CString类
使用全局vector<CString>保存智能卡设备名,发现使用vector.empty()无法正常清空容器
set、map都有同样的问题,但是使用局部变量没问题。。。
最诡异的是ATL::CString简单的赋值操作,两个变量前后值都不一样。。。
在WTL中也发现类似的问题,Debug和Release都有这样的问题,应该不是编译器编译的时候给优化了

[解决办法]
不会吧
是不是你用的不对?
[解决办法]
是你用的不对吧
[解决办法]
用CStringArray试试。
[解决办法]
应该出了某种错误
[解决办法]
用过很多的ATL:CString,从未遇到LZ说的问题。
[解决办法]
vector.empty()是判断是否为空。
vector.clear()才是清空容器
[解决办法]
应该不可能吧。
可能还是用得不对。
你是不是把vector中的值读出来改变了,然后没有真正改vector中的CString?
[解决办法]
empty 用于清空??
如果这个函数用于清空,那么程序岂不崩溃了。

读书人网 >VC/MFC

热点推荐