记录一下使用CString::MakeLower可能导致的crash的一个问题:

问题重现:

int _tmain(int argc, _TCHAR* argv[])
{
 std::string  sTmp = ":U鬱躺衻撅伙";//参照下面参考三
 CString str  = sTmp.substr(0,sTmp.size() - 1).c_str();
 str.TrimRight();      
 str.MakeLower(); //抛出异常
 return 0;
}

-=-=-=-=-=backtrace  -=-=-=-=-=-=-=-=-==-=-=-=-=-=-=-

KernelBase.dll!7693b727()  
  [下面的框架可能不正确和/或缺失,没有为 KernelBase.dll 加载符号] 
  KernelBase.dll!7693b727()  
  msvcr80d.dll!_CxxThrowException(void * pExceptionObject=0x0018f974, const _s__ThrowInfo * pThrowInfo=0x0042e180)  行161 C++
> test.exe!ATL::AtlThrowImpl(HRESULT hr=E_FAIL)  行77 C++
  test.exe!ATL::AtlCrtErrorCheck(int nError=42)  行48 C++
  test.exe!ATL::Checked::mbslwr_s(unsigned char * _Str=0x002ac0d8, unsigned int _SizeInChars=15)  行161 + 0x20 字节 C++
  test.exe!ATL::ChTraitsCRT<char>::StringLowercase(char * psz=0x002ac0d8, unsigned int size=15)  行462 + 0xd 字节 C++
  test.exe!ATL::CStringT<char,ATL::StrTraitATL<char,ATL::ChTraitsCRT<char> > >::MakeLower()  行1768 + 0x10 字节 C++
  test.exe!main(int argc=1, char * * argv=0x003f5198)  行18 C++
  test.exe!__tmainCRTStartup()  行597 + 0x19 字节 C
  test.exe!mainCRTStartup()  行414 C
  kernel32.dll!760233ca()  
  ntdll.dll!76ef9ed2()  
  ntdll.dll!76ef9ea5()

-=-=-=-=-=-=-=-=-backtrace-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=

参考:

1. CString::MakeLower() + Chinese Windows = crash

2. CString::MakeUpper crashes on german umlaut, if language is japanese,微软给出了回复,同时在这里给出了解决方案http://forums.microsoft.com/msdn/default.aspx

3.CString::MakeLower() 崩溃问题 ,这里讲的原因确实会出现crash。

CString::MakeLower Crash的更多相关文章

  1. MFC 字符串类CString 源代码

    原文:http://blog.csdn.net/benny5609/article/details/1926088 CString使用的是引用技术,可以共享数据(这个大家都知道),另外空的CStirn ...

  2. C++——CString用法大全

    列表形式的如下: CString的构造函数CString( );例:CString csStr; CString( const CString& stringSrc );例:CString c ...

  3. CString用法总结

    概述:CString是MFC中提供的用于处理字符串的类,是一种很有用的数据类型. 它很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作时方便了很多. 不管怎样,使用CString有很多的特殊 ...

  4. 【转载】C++——CString用法大全

    CString常用方法简介 作者:webmaster 出处:无 CString::Compareint Compare( LPCTSTR lpsz ) const;返回值  字符串一样 返回0     ...

  5. VC:CString用法整理(转载)

    1.CString::IsEmpty BOOL IsEmpty( ) const; 返回值:如果CString 对象的长度为0,则返回非零值:否则返回0. 说明:此成员函数用来测试一个CString ...

  6. Cstring 的用法

    CString位于头文件afx.h中. 这篇文章就来讨论这些技巧. 使用CString可以让你对字符串的操作更加直截了当.这篇文章不是CString的完全手册,但囊括了大部分常见基本问题. 这篇文章包 ...

  7. CString(转)

    CString::Compare int Compare( LPCTSTR lpsz ) const; 返回值   字符串一样  返回0 小于lpsz  返回-1 大于lpsz  返回1 区分大小字符 ...

  8. VS2010/MFC编程入门之四十二(MFC常用类:CString类)

    上一节鸡啄米讲了分割窗口的有关知识,本节开始讲解MFC的一些常用类,先来说说CString类. CString类简介 CString类作为MFC的常用类,当之无愧.可以这样说,只要是从事MFC开发,基 ...

  9. VS2010-MFC(MFC常用类:CString类)

    转自:http://www.jizhuomi.com/software/228.html CString类简介 CString类作为MFC的常用类,当之无愧.可以这样说,只要是从事MFC开发,基本都会 ...

随机推荐

  1. 中间件——Oracle Fusion Middleware

    Oracle Fusion Middleware定义: 什么是Oracle Fusion Middleware Oracle Fusion Middleware is a comprehensive ...

  2. (转)Docker - 使用 compose 编排服务

    在园子里看到了这篇关于 compose 的文章,非常好!!转过来,先附上原文地址 http://www.cnblogs.com/52fhy/p/5991344.html ----- 入门示例 一般步骤 ...

  3. zabbix短信监控

    [ ] zabbix-短信报警(参考http://hanyun.blog.51cto.com/1060170/1604918 ) [ ] zabbix-电话报警(参考http://dl528888.b ...

  4. NSString 转换

    NSString *tempA = @"123"; NSString *tempB = @"456"; 1,字符串拼接 NSString *newString ...

  5. Centos7 超简单将Centos的yum源更换为国内的阿里云源

    1.备份 mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup 2.下载新的CentOS-Base ...

  6. thingsboard在windows下安装和使用

    在官网下载thingsboard和tb-gateway 需要安装java8 thingsboard服务安装 https://thingsboard.io/docs/user-guide/install ...

  7. elastic(9)映射

    转自:https://www.cnblogs.com/eryuan/p/7389728.html?utm_source=debugrun&utm_medium=referral elastic ...

  8. aop计算方法耗时

    package necs.omms.common.aop; import lombok.extern.apachecommons.CommonsLog;import org.apache.common ...

  9. <转>Linux环境进程间通信--信号灯(四)

    http://www.ibm.com/developerworks/cn/linux/l-ipc/part4/ 一.信号灯概述 信号灯与其他进程间通信方式不大相同,它主要提供对进程间共享资源访问控制机 ...

  10. Ubuntu下&nbsp;Nfs服务器安装

    Ubuntu Nfs服务器安装 nfs服务器在嵌入式开发中非常常用,可以实现主机和开发板共享文件.     1.安装软件包     sudo apt-get install nfs-common nf ...