CString 变量 析构时,报错.详见内容

2023-12-21 08:08

本文主要是介绍CString 变量 析构时,报错.详见内容,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

CString 变量 析构时,报错.详见内容
代码如下:
C/C++ code
LRESULT CXxx::OnEnableEdit(WPARAM, LPARAM)
{CString strOne("ABC");CString strTwo("DEF");UpdateData(true);if (m_s_ComString == strOne){m_nFlag = MODE_ONE;}if (m_s_ComString == strTwo){m_nFlag = MODE_TWO;}switch (m_nFlag){case MODE_ONE:{((CComboBox *)GetDlgItem(IDC_COM_STAND_ITEM))->EnableWindow(true);break;}case MODE_TWO:{((CComboBox *)GetDlgItem(IDC_COM_STAND_ITEM))->EnableWindow(false);CXXXDialog dlg;dlg.DoModal();}}return 0;  //语句一
}~CStringT() throw()  //函数二{}~CSimpleStringT() throw(){CStringData* pData = GetData();pData->Release(); //语句三}void struct CstringData::Release() throw()
{ATLASSERT( nRefs != 0 );if( _AtlInterlockedDecrement( &nRefs ) <= 0 ){pStringMgr->Free( this );  //语句四}
}


调用堆栈显示调用过程为 
语句一 -> 函数二 -> 语句三 ->语句四

语句四处发生异常。显示pStringMgr为0xdddddddd.

找不出错误原因,请指点

------解决方案--------------------
可能CString对象的堆栈被破坏了

------解决方案--------------------
跨线程还是跨模块用CString了
------解决方案--------------------
CString strOne("ABC");
CString strTwo("DEF");

这里需要析构的cstring变量就这两个,但是这样赋值好像没有问题的
你去掉这两个变量试试看,比较那里用Compare直接比较试一下


CString拷贝:
CString str;
CString Str;
str.Format(L"%s", Str);

这篇关于CString 变量 析构时,报错.详见内容的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/519208

相关文章

解决1093 - You can‘t specify target table报错问题及原因分析

《解决1093-Youcan‘tspecifytargettable报错问题及原因分析》MySQL1093错误因UPDATE/DELETE语句的FROM子句直接引用目标表或嵌套子查询导致,... 目录报js错原因分析具体原因解决办法方法一:使用临时表方法二:使用JOIN方法三:使用EXISTS示例总结报错原

Spring Boot中的路径变量示例详解

《SpringBoot中的路径变量示例详解》SpringBoot中PathVariable通过@PathVariable注解实现URL参数与方法参数绑定,支持多参数接收、类型转换、可选参数、默认值及... 目录一. 基本用法与参数映射1.路径定义2.参数绑定&nhttp://www.chinasem.cnbs

c++ 类成员变量默认初始值的实现

《c++类成员变量默认初始值的实现》本文主要介绍了c++类成员变量默认初始值,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧... 目录C++类成员变量初始化c++类的变量的初始化在C++中,如果使用类成员变量时未给定其初始值,那么它将被

Python变量与数据类型全解析(最新整理)

《Python变量与数据类型全解析(最新整理)》文章介绍Python变量作为数据载体,命名需遵循字母数字下划线规则,不可数字开头,大小写敏感,避免关键字,本文给大家介绍Python变量与数据类型全解析... 目录1、变量变量命名规范python数据类型1、基本数据类型数值类型(Number):布尔类型(bo

Java实现删除文件中的指定内容

《Java实现删除文件中的指定内容》在日常开发中,经常需要对文本文件进行批量处理,其中,删除文件中指定内容是最常见的需求之一,下面我们就来看看如何使用java实现删除文件中的指定内容吧... 目录1. 项目背景详细介绍2. 项目需求详细介绍2.1 功能需求2.2 非功能需求3. 相关技术详细介绍3.1 Ja

qt5cored.dll报错怎么解决? 电脑qt5cored.dll文件丢失修复技巧

《qt5cored.dll报错怎么解决?电脑qt5cored.dll文件丢失修复技巧》在进行软件安装或运行程序时,有时会遇到由于找不到qt5core.dll,无法继续执行代码,这个问题可能是由于该文... 遇到qt5cored.dll文件错误时,可能会导致基于 Qt 开发的应用程序无法正常运行或启动。这种错

一文全面详解Python变量作用域

《一文全面详解Python变量作用域》变量作用域是Python中非常重要的概念,它决定了在哪里可以访问变量,下面我将用通俗易懂的方式,结合代码示例和图表,带你全面了解Python变量作用域,需要的朋友... 目录一、什么是变量作用域?二、python的四种作用域作用域查找顺序图示三、各作用域详解1. 局部作

Python实现自动化Word文档样式复制与内容生成

《Python实现自动化Word文档样式复制与内容生成》在办公自动化领域,高效处理Word文档的样式和内容复制是一个常见需求,本文将展示如何利用Python的python-docx库实现... 目录一、为什么需要自动化 Word 文档处理二、核心功能实现:样式与表格的深度复制1. 表格复制(含样式与内容)2

MySQL启动报错:InnoDB表空间丢失问题及解决方法

《MySQL启动报错:InnoDB表空间丢失问题及解决方法》在启动MySQL时,遇到了InnoDB:Tablespace5975wasnotfound,该错误表明MySQL在启动过程中无法找到指定的s... 目录mysql 启动报错:InnoDB 表空间丢失问题及解决方法错误分析解决方案1. 启用 inno

Java如何将文件内容转换为MD5哈希值

《Java如何将文件内容转换为MD5哈希值》:本文主要介绍Java如何将文件内容转换为MD5哈希值的实现方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Java文件内容转换为MD5哈希值一个完整的Java示例代码代码解释注意事项总结Java文件内容转换为MD5