zoukankan      html  css  js  c++  java
  • 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。

  • 相关阅读:
    TensorRT推理加速基于Tensorflow(keras)的uff格式模型(文件准备)
    pandas_format06
    docker01
    pandas_dataformat03
    pandas_dataformat02
    pandas_series04
    pandas_format05
    pandas_format04
    pandas_dataframe01
    pandas_series03
  • 原文地址:https://www.cnblogs.com/Totems/p/3238657.html
Copyright © 2011-2022 走看看