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开发,基本都会 ...
随机推荐
- 位数问题(dp 递推)
位数问题 时间限制: 1 Sec 内存限制: 128 MB提交: 35 解决: 19[提交][状态][讨论版][命题人:quanxing] 题目描述 在所有的N位数中,有多少个数中有偶数个数字3? ...
- angular 三大核心函数
1.$watch angular监听 由于angular一直在实时监听,所以比react和vue效率要低 $scope.$watch('aModel', function(newValue, o ...
- php 中php-fpm 的重启、终止操作命令
php 中php-fpm 的重启.终止操作命令: service nginx restart service php-fpm restart 查看php-fpm进程数:ps aux | grep -c ...
- javascript原型继承中的两种方法对比
在实际的项目中,我们通常都是用构造函数来创建一个对象,再将一些常用的方法添加到其原型对象上.最后要么直接实例化该对象,要么将它作为父类,再申明一个对象,继承该父类. 而在继承的时候有两种常用方式,今天 ...
- SMO是英文SQL Server Management Objects的缩写(上一篇文章的补充)
最近在项目中用到了有关SQL Server管理任务方面的编程实现,有了一些自己的心得体会,想在此跟大家分享一下,在工作中用到了SMO/SQL CLR/SSIS等方面的知识,在国内这方面的文章并不多见, ...
- leetcode598
public class Solution { public int MaxCount(int m, int n, int[,] ops) { ); ); || col == ) { return m ...
- python3导入自定义模块
模块是个好东西啊,大牛们开源共享许多模块也加快了大家开发的速度,许多开源模块可以在这里找到 ↓ https://pypi.python.org/pypi 因为刚入门所有有很多细节不懂,在网上搜寻资料的 ...
- dokuwiki安装问题
工作了几年,虽然在程序员这个道路上才算开始,希望以后能够有所成长,为了把平时遇到的技术问题,记录下来,第一个想到的就是写wiki,博客虽然创建了许久,但是没有坚持写下去,在网上找了许多的wiki程序, ...
- c++策略模式(Strategy Method)
别人的博客再讲策略模式时都会讲三国,策略类就是赵云的锦囊,锦囊里装着若干妙计.在打仗时想要用什么妙计,直接从锦囊里去取. 锦囊类: class context { public: context(IS ...
- 633. Sum of Square Numbers 是否由两个完全平方数构成
[抄题]: Given a non-negative integer c, your task is to decide whether there're two integers a and b s ...