gpt4 book ai didi

c++ - 由于没有运算符的 CString 连接(?)导致的 MemoryException

转载 作者:太空宇宙 更新时间:2023-11-04 12:43:21 25 4
gpt4 key购买 nike

我的应用程序在以下源代码行崩溃:

CString path;
path = CACHE_DIR _T("Local\\Alarm\\current.tmp");

地点:

#define CACHE_DIR       _T("C:\\<somewhere>\\System Cache\\")

调用堆栈提到以下代码行:

mfc140u.dll!ATL::CSimpleStringT<wchar_t,1>::operator=(const wchar_t * pszSrc) Line 317

我尝试做一些分析,尝试使用即时窗口,但这无法识别 _T() 运算符,也无法识别其同义词 __T()L ##

所以现在看来​​,我有两个可能的原因:

  1. 连接出错(问题:连接两个 CString 对象是否正确,只需将它们一个接一个地放在一行源代码中?)。
  2. 拼接的结果很好,但我无法将其放入结果变量中,这是由于:

    2.1。处理 CString 变量的错误方法。

    2.2。内存问题,与这一行特定的源代码无关(但为什么我的应用程序会一直在这一行崩溃?)。

请注意,我的应用程序是多线程的。

谁能告诉我我的应用程序出了什么问题?

在第一条评论后编辑:
来源似乎是正确的,这可能表明堆损坏,但我不知道如何调查堆。有人对此事有任何线索吗?

最佳答案

我找到了问题的“原因”:为了解决之前的问题,我启用了计算机的所有 gflags,但后来忘记禁用它们。

我现在已经禁用了所有的 gflags,现在问题不再出现了:
启动“Application Verifier”,配置如下:

enter image description here

关于c++ - 由于没有运算符的 CString 连接(?)导致的 MemoryException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52964560/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com