佚名通过本文主要向大家介绍了影子系统感觉要慎用,实用咒语大全 慎用,慎用,culturelle益生菌慎用,孕妇慎用等相关知识,希望对您有所帮助,也希望大家支持linkedu.com www.linkedu.com
问题: 慎用ATL::CString,慎用全局变量,不然都不知道怎么死的
描述:
解决方案1:
描述:
最近开发Windows Xp智能卡登录Gina,编译环境VS2008,碰到很奇怪的问题。。。
为了处理字符串方便使用的ATL::CString类
使用全局vector<CString>保存智能卡设备名,发现使用vector.empty()无法正常清空容器
set、map都有同样的问题,但是使用局部变量没问题。。。
最诡异的是ATL::CString简单的赋值操作,两个变量前后值都不一样。。。
在WTL中也发现类似的问题,Debug和Release都有这样的问题,应该不是编译器编译的时候给优化了
解决方案1:
应该不可能吧。
可能还是用得不对。
你是不是把vector中的值读出来改变了,然后没有真正改vector中的CString?
empty 用于清空??
如果这个函数用于清空,那么程序岂不崩溃了。
vector.empty()是判断是否为空。
vector.clear()才是清空容器
用过很多的ATL:CString,从未遇到LZ说的问题。
解决方案5:应该出了某种错误
解决方案6:用CStringArray试试。
解决方案7:是你用的不对吧
解决方案8: 不会吧
是不是你用的不对?