gpt4 book ai didi

c++ - 仅在 Release模式下 MFC 错误 "Failed to create an empty document"

转载 作者:行者123 更新时间:2023-11-30 05:28:33 31 4
gpt4 key购买 nike

我在 MFC/SDI 和 Visual Studio 2008 下运行应用程序。

我仅在 Release模式下收到错误“无法创建空文档”。我发现有问题的代码是我在下面向您展示的代码。只有当输入参数是电子邮件字符串即 xyz@yahoo.com 时才会触发错误。同样在 Debug模式下它工作得很好。

有人能给我解释一下为什么会这样吗?

void CUtils::RemoveEndingSlash(CString *str) {


if (str->GetAt(str->GetLength()-1) == '/') {

*str = str->Left(str->GetLength() - 1);

}

}

确切的违规代码是

str->GetAt(x).

我解决了使用按值输入参数而不是按引用更改上述代码的问题。

问候,

最佳答案

好的,解决了。

缓冲区溢出,因为一些调用者之前传递了一个空字符串。

我没有检查空字符串,因此缓冲区溢出。

关于c++ - 仅在 Release模式下 MFC 错误 "Failed to create an empty document",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36775854/

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