CString::MakeLower Crash
记录一下使用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的更多相关文章
- MFC 字符串类CString 源代码
原文:http://blog.csdn.net/benny5609/article/details/1926088 CString使用的是引用技术,可以共享数据(这个大家都知道),另外空的CStirn ...
- C++——CString用法大全
列表形式的如下: CString的构造函数CString( );例:CString csStr; CString( const CString& stringSrc );例:CString c ...
- CString用法总结
概述:CString是MFC中提供的用于处理字符串的类,是一种很有用的数据类型. 它很大程度上简化了MFC中的许多操作,使得MFC在做字符串操作时方便了很多. 不管怎样,使用CString有很多的特殊 ...
- 【转载】C++——CString用法大全
CString常用方法简介 作者:webmaster 出处:无 CString::Compareint Compare( LPCTSTR lpsz ) const;返回值 字符串一样 返回0 ...
- VC:CString用法整理(转载)
1.CString::IsEmpty BOOL IsEmpty( ) const; 返回值:如果CString 对象的长度为0,则返回非零值:否则返回0. 说明:此成员函数用来测试一个CString ...
- Cstring 的用法
CString位于头文件afx.h中. 这篇文章就来讨论这些技巧. 使用CString可以让你对字符串的操作更加直截了当.这篇文章不是CString的完全手册,但囊括了大部分常见基本问题. 这篇文章包 ...
- CString(转)
CString::Compare int Compare( LPCTSTR lpsz ) const; 返回值 字符串一样 返回0 小于lpsz 返回-1 大于lpsz 返回1 区分大小字符 ...
- VS2010/MFC编程入门之四十二(MFC常用类:CString类)
上一节鸡啄米讲了分割窗口的有关知识,本节开始讲解MFC的一些常用类,先来说说CString类. CString类简介 CString类作为MFC的常用类,当之无愧.可以这样说,只要是从事MFC开发,基 ...
- VS2010-MFC(MFC常用类:CString类)
转自:http://www.jizhuomi.com/software/228.html CString类简介 CString类作为MFC的常用类,当之无愧.可以这样说,只要是从事MFC开发,基本都会 ...
随机推荐
- MySQL-事务的实现-redo
MySQL中事务: 事务的实现: ACID: 原子性(A : Atomicity) 一致性(C : consistency ) 隔离性(I : isolation) 持久性(D : dura ...
- zabbix的sendEmail配置
zabbix的sendEmail配置 [root@hongquan scripts]# yum install sendmail[root@hongquan soft]# tar xvzf sendE ...
- 技术流:6大类37种方式教你在国内推广App
转自:http://www.gamelook.com.cn/2015/01/201906 如何有效的推广自己App,是每个发行商都要考虑的问题,当然每个产品都有适合自己的推广方式.本文就集结了包括应用 ...
- UE4动画功能整理
转自:http://blog.ch-wind.com/ue4%E5%8A%A8%E7%94%BB%E5%8A%9F%E8%83%BD%E6%95%B4%E7%90%86/ 工欲善其事必先利其器,最近一 ...
- C#之Application.DoEvents()
Application.DoEvents()的最大作用就是时时响应, 可以看做是个线程的一个封装 private void button1_Click(object sender, EventArgs ...
- Java之常用类及方法
下面我们介绍Java类库所提供的常用类及类的常用方法 一.java.lang.String 1. String类常用的构造函数 public String(String original) 使用串对象 ...
- [原创]Mybatis特殊值Enum类型转换器-ValuedEnumTypeHandler
引言 typeHandlers 阅读官方文档 typeHandlers 一节{:target="_blank"} MyBatis 在预处理语句(PreparedStatement) ...
- java Integer类的缓存(转)
首先看一段代码(使用JDK 5),如下: public class Hello { public static void main(String[] args) { int a = 1000, b = ...
- 【291】Python 中字符串添加到剪贴板
参考:如何使用Python将字符串复制到Windows上的剪贴板上? 实现代码如下: from Tkinter import Tk r = Tk() r.withdraw() r.clipboard_ ...
- 通过模板判断Value是否为指针
有个参数,需要判断其Value是否为指针,如果是做相应的处理. 代码示例如下,后来发现is_pointer在std空间中. #include <stdio.h> #include<i ...